[linux] Re: conversie naar xml

Rob Sterenborg rob op sterenborg.info
Za Jan 21 10:05:26 CET 2006


linux-bounce op lists.nllgg.nl scribbled on Saturday, 21 January 2006
01:39:

> Ik heb, eindelijk, een vervanger gevonden van
> passwordguardien, om mijn
> wachtwoorden handig te bewaren. Dat was het laatste programma waarvoor
> ik 'n windoos nodig had.
> 
> Nu moet ik de datafile overzetten van het oude formaat naar een
> xml-formaat. 
> 
> Dat lijkt me typisch een probleem dat bij de open software
> tegenwoordig erg veel voor komt. Zijn daar al handige tooltjes voor of
> moet ik mijn awk-vaardigheden gaan opgraven?
> 
> Hieronder de beide formaten:

...

Het is misschien geen state-of-the-art shell scripting, maar het werkt
bij mij :
(Sorry voor eventuele line-wrapping...)

=== start script ===
#!/bin/bash

old_pwd_list="pwd_old.txt"
new_pwd_list="pwd_new.txt"

echo "<?xml version="1.0" encoding="UTF-8"?>" > $new_pwd_list
echo "<pwlist>" >> $new_pwd_list

for line in `cat -A $old_pwd_list | tr " " "_"` ; do
  
  line=`echo $line | tr "_" " "`
  field=`echo $line | cut -d ":" -f 1`
  data=`echo $line | cut -d ":" -f 2 | cut -d "$" -f 1 | sed 's/^ //'`
  
  if [ "$field" == "Account / service" ] ; then
    # Nieuwe sectie begint
    echo "  <pwentry>" >> $new_pwd_list
    echo "    <title>$data</title>" >> $new_pwd_list
  fi
  
  [ "$field" == "Login / username" ] && \
    echo "    <username>$data</username>" >> $new_pwd_list
  
  [ "$field" == "Password" ] && \
    echo "    <password>$data</password>" >> $new_pwd_list

  [ "$field" == "Expires" ] && \
    echo "    <expires>$data</expires>" >> $new_pwd_list
  
  [ "$field" == "Misc." ] && \
    echo "    <misc>$data</misc>" >> $new_pwd_list
  
  # Een sectie eindigt met een lege regel ($)
  [ "$line" == "$" ] && echo "  </pwentry>" >> $new_pwd_list
  
done

# Een sectie eindigt met $. Check of de laatste regel
# (laatste sectie) een lege regel is ; zo niet :
[ "$line" != "$" ] && echo "  </pwentry>" >> $new_pwd_list

echo "</pwlist>" >> $new_pwd_list=== end script ===


Gr,
Rob




More information about the Linux mailing list