Auf die Schnelle im Terminal mit einer Zeile

Annahme: die Dateien liegen alle in einem Ordner und alle Dateien die in diesem Ordner liegen sollen den Dateienamen als erste Zeile erhalten.

Hinweis: bitte vorher eine Kopie des Ordners erstellen, falls es bei Dir wegen irgendwelcher Sonderzeichen nicht klappen sollte!!! Alternativ kannst Du auch den Dateinamen beim > "$i" ändern, aktuell wird das Original direkt überschrieben.

Zum Testen habe ich zwei Dateien angelegt

$ cat "macfix1 dieser text soll in die datei.txt"
(die ist leer)

>$ cat "macfix2 dieser text auch.txt""
und hier steht schon was
der dateiname muß davor stehen


Im Terminal in den Ordner/das Verzeichnis mit den Dateien gehen und folgende Zeile ausführen.

Show Plain Text
  1. for i in * ; do FILENAME="$i" ; echo -e "${FILENAME%%.*}\n$(cat "$i")" > "$i" ; done

Danach sollte es so aussehen:

>$ cat "macfix1 dieser text soll in die datei.txt"
macfix1 dieser text soll in die datei

>cat "macfix2 dieser text auch.txt"
macfix2 dieser text auch
und hier steht schon was
der dateiname muß davor stehen


Falls Deine Dateien alle eine spezielle Endung haben z.B. "txt" kannst Du oben statt "for i in * " auch direkt "for i in *.txt" schreiben, dann werden nur .txt Dateien behandelt.