PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Allen Dateien im DIR eine Zeile einfügen



Raggi73
15.05.07, 18:27
Hallo
meinen 1000 XML-files fehlen am Anfang (1.Zeile) dasXML-Encoding
Wie kann ich mit einer Software oder Shellscript jeder Datei im Directory am Anfang eine Zeile hinzufügen? Mit CAT wird es leider hinten angehängt, so meine Versuche

es müsste doch so ungefähr funktionieren:
for i in *.xml
do
echo "<?xml version="1.0" encoding="iso-8859-1"?>" > cat i > i_new
done



Gruss
Raggi

kreol
15.05.07, 18:51
for i in *.xml
do echo '<?xml version="1.0" encoding="iso-8859-1"?>' > $i.tmp
cat $i >> $i.tmp
mv $i.tmp $i
doneUngetestet und geht vllt. eleganter, sollte aber funktionieren. Kannst das mv ja erstmal weglassen.


Kreol

Raggi73
16.05.07, 08:40
supergut, fumktioniert! Besten Dank!

temir
17.05.07, 11:29
...
Ungetestet und geht vllt. eleganter, sollte aber funktionieren.
...

Ich will es mal versuchen ;-): im Verzeichnis mit XMLs Datei namens patch.ed mit folg. Ihnalt anlegen:


0a
<?xml version="1.0" encoding="iso-8859-1"?>
.

der Rest ist wohl selbstverständlich:


for f in *.xml;do patch -e $f patch.ed;done

buzz768
17.05.07, 11:53
Oder so:


for f in *.xml ; do sed -i '1i <?xml version="1.0" encoding="iso-8859-1"?>' "$f" ;done