Seiten

Dienstag, 16. März 2010

Linux/Solaris: Dateiname in Textdateien einfügen

Um den jeweiligen Dateinamen in die 2. Zeile aller Textdateien einzufügen, die in einem Verzeichnis liegen, kann man folgende Befehlszeile im verwenden:

for i in *.*; do sed -i "2i\\$i" $i; done

1 Kommentar:

  1. Hallo,
    in dem 3-Zeiler sind ein paar Unzulänglichkeiten enthalten.
    - for i in *.* bearbeitet jede Datei und Verzeichnis im aktuellen Verzeichnis. Während ein Verzeichnis 'nur' einen Fehler auswirft, wäre das bei anderen Dateien fatal. Besser wäre for i in *.txt. Idealerweise prüft man vorher die zu verarbeitende Datei (z.B. mit file).
    - sed -i "2i\\$i" $i versagt bei unter anderem Leerzeichen im Dateinamen. Hier sollte die Dateivariable gequotet werden, also: sed -i "2i\\$i" "$i"

    Gruß Kü.

    AntwortenLöschen