Am Mittwoch, 31. Juli 2002 00:12 schrieb Björn Beckmann:
Bertram Scharpf wrote:
Am Dienstag, 30. Juli 2002 15:13 schrieb Björn Beckmann:
Ich versuche gerade, in html-dateien per awk den DOCTYPE-header einzufügen - das Skript dth.awk ist folgendes
#Doctype-Header einfügen, falls nicht vorhanden... {
[...]
print $0 > FILENAME }
Aufgerufen wird es mit awk -f dth.awk `find -name '*'.html`. Leider werden die Dateien auf 4.0kb begrenzt - auch wenn die ürsprünglichen z.T. größer sind. Weiß jemand Rat?
Du schreibst in eine geöffnete Datei, aus der gerade gelesen wird. Habe ich auch schon probiert, das geht nicht gut. Nach dem Schreibvorgang wird die Dateilänge neu gesetzt. Was da genau passiert weiß ich auch nicht, aber alle folgenden Blöcke werden einfach >>vergessen<<.
Am besten verwendest Du eine Zwischendatei `xxx.html.tmp' oder `xxx.html~' oder so.
Danke für den Tip - aber wie bekomme ich es hin, daß dann anschließend alles in den ürsprünglichen Dateien steht?
Gruß, Björn Beckmann
Schreib ein zusätzliches script: insertheader.awk: #!/bin/awk { if(NR==1 && !/DOCTYPE/) { print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n" } print $0 } insertheader.sh: #!/ bin/bash awk -f insertheader.awk <$1 >$1.temp mv $1.temp $1 Und das ganze dann aufgerufen mit find . -name '*.html' -exec insertheader.sh {} \; Grüße Alex -- Alexander Puchmayr Systemadministrator for Theoretical Physics University Linz, Austria e-mail: alexander.puchmayr@jku.at Altenbergerstrasse 69 phone: +43/732/2468-8633 A-4040 Linz-Auhof FAX: +43/732/2468-8585