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

Wie füge ich einen Text am Anfang einer Datei ein?

Wenn die Datei nur aus einer Zeile besteht, können Sie Folgendes verwenden:

sed 's/^/insert this /' oldfile > newfile

Wenn es mehr als eine Zeile ist. einer von:

sed '1s/^/insert this /' oldfile > newfile
sed '1,1s/^/insert this /' oldfile > newfile

Ich habe letzteres eingefügt, damit Sie wissen, wie man Linienbereiche erstellt. Beide "ersetzen" die Startzeilenmarkierung in ihren betroffenen Zeilen durch den Text, den Sie einfügen möchten. Sie können auch (vorausgesetzt Ihr sed ist modern genug) use:

sed -i 'whatever command you choose' filename

um eine direkte Bearbeitung durchzuführen.


Wenn Sie am Anfang einer Datei eine Zeile hinzufügen möchten, müssen Sie \n hinzufügen am Ende der Zeichenfolge in der besten Lösung oben.

Die beste Lösung fügt die Zeichenfolge hinzu, aber mit der Zeichenfolge wird keine Zeile am Ende einer Datei hinzugefügt.

sed -i '1s/^/your text\n/' file

Unterschale verwenden:

echo "$(echo -n 'hello'; cat filename)" > filename

Leider werden durch die Befehlsersetzung Zeilenumbrüche am Ende der Datei entfernt. Um sie zu behalten, kann man verwenden:

echo -n "hello" | cat - filename > /tmp/filename.tmp
mv /tmp/filename.tmp filename

Weder Gruppierung noch Befehlsersetzung sind erforderlich.


sed kann auf einer Adresse operieren:

$ sed -i '1s/^/<added text> /' file

Was ist dieses magische 1s Siehst du auf jeder Antwort hier? Zeilenadressierung!.

<added text> hinzufügen möchten in den ersten 10 Zeilen?

$ sed -i '1,10s/^/<added text> /' file

Oder Sie können Command Grouping verwenden :

$ { echo -n '<added text> '; cat file; } >file.new
$ mv file{.new,}

Linux
  1. So fügen Sie unter Linux Text an das Dateiende an

  2. Wie füge ich am Ende einer Datei einen Zeilenumbruch hinzu?

  3. Wie fügt man Text vor der ersten Zeile einer Datei ein?

  4. Wie hängt man die Ausgabe an eine Datei an?

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

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

Wie leite ich einen Unterprozessaufruf an eine Textdatei weiter?

Wie leitet man die Ausgabe von system() in eine Datei um?

So verwenden Sie sed, um die letzten n Zeilen einer Datei zu entfernen

Wie kann ich dem Anfang jeder Zeile in einer Datei eine Zeichenfolge voranstellen?

Wie füge ich mit sed Text in die erste Zeile einer Datei ein?