Um den jeweiligen Dateinamen in die 2. Zeile aller Textdateien einzufügen, die in einem Verzeichnis liegen, kann man folgende Befehlszeile im verwenden:
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"
Hallo,
AntwortenLöschenin 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ü.