GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann ich am Anfang jeder Datei in einem Ordner in Bash eine Zeichenfolge hinzufügen?

Und Sie können dies mit sed in einem einzigen Befehl tun auch

for f in *; do
  sed -i.bak '1i\
  foo-bar
  ' ${f}
done

Dies wird das tun. Sie könnten es effizienter machen, wenn Sie den gleichen Text in jede Datei schreiben...

for f in *; do 
  echo "whatever" > tmpfile
  cat $f >> tmpfile
  mv tmpfile $f
done

Sie können es so ohne Schleife und cat machen

sed -i '1i whatever' *

Wenn Sie Ihre Dateien sichern möchten, verwenden Sie -i.bak

Oder mit awk

awk 'FNR==1{$0="whatever\n"$0;}{print $0>FILENAME}' *

Linux
  1. Wie ersetze ich eine Zeichenfolge in einer oder mehreren Dateien?

  2. Wie finde ich alle unterschiedlichen Dateierweiterungen in einer Ordnerhierarchie?

  3. Wie füge ich in Bash nach jeder Zeile in einer Datei eine Zeichenfolge hinzu?

  4. Wie kann ich in jedem Ordner eine Datei erstellen?

  5. Wie kann ich die Größe jeder Datei und jedes Verzeichnisses auflisten und in Bash nach absteigender Größe sortieren?

Ersetzen von Zeichenfolgen in Bash

So fügen Sie Text am Anfang einer Datei in Linux hinzu

Fügen Sie am Anfang jeder Zeile eine Präfixzeichenfolge hinzu

Wie kann ich unter Linux eine Fußzeile am Ende jeder Seite einer Postscript- oder PDF-Datei hinzufügen?

So fügen Sie jeder Zeile einer kontinuierlich geschriebenen Protokolldatei eine Datumszeichenfolge hinzu

Wie kann ich die letzte Zahl von String in Bash bekommen?