Mon May 24 09:56:39 CEST 2010

conversion

Jeg kom frem til et script som nedenstående:

#!/bin/bash

rm newfile


ls -1 *.html | while read file
do
        grep -v DELIMITER $file > newfile
        mv newfile $file
        #
        YEAR=$(echo "$file" | cut -d"." -f1)
        #
        # make sure head/date-line is on its own line
        cat $file | sed 's. *
.\n
.g' > tmpfile mv tmpfile $file # # main loop starts here # cat $file |grep -v "^$"| while read line do echo "$line" | grep -q ".. ... ${YEAR}.*" rc=$? if [ $rc -eq 0 ]; then date=$(echo "$line" | grep -o ".. ... ${YEAR}") CCYY=$(echo $date | cut -d" " -f3) MM=$(echo $date | cut -d" " -f2 |tr 'A-Z' 'a-z') # convert month name to month number case "$MM" in jan) MM=01 ;; feb) MM=02 ;; mar) MM=03 ;; apr) MM=04 ;; may) MM=05 ;; maj) MM=05 ;; jun) MM=06 ;; jul) MM=07 ;; aug) MM=08 ;; sep) MM=09 ;; oct) MM=10 ;; okt) MM=10 ;; nov) MM=11 ;; dec) MM=12 ;; esac # DD=$(echo $date | cut -d" " -f1) newfile="${CCYY}-${MM}-${DD}T12_30_45.txt" echo $newfile > newfile touch $newfile cat pre >> $newfile echo $newfile else # get filename newfile=$(cat newfile) if [ "X$newfile" = "X" ]; then echo "newfile not set? Missing date line?" exit 1 else echo "$line" >> $newfile fi fi done done ls -1 *.txt | while read file do cat post >> $file date=$(echo $file | cut -d"T" -f1) cat $file | sed "s/^DATE:/DATE: $date/" > tmpfile mv tmpfile $file done

Det tager mine filer med navn 2002.html, 2003.html og så videre, og laver en templatefil til nanoblogger per indlæg, dvs i hver fil findes dato-linjerne, der adskiller indlæggene, og der laves en fil med datoen som navn, indeholdene linjerne frem til næste dato-linje.

Der er noget tilretning stadigvæk, med relative links mellem indlæggene, og andre ting, som jeg tager løbende.


Posted by ole | Permanent link