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

So fügen Sie einer Datei in Linux Header- und Trailer-Zeile hinzu

In diesem Artikel sehen wir die verschiedenen Möglichkeiten, einen Header-Datensatz oder einen Trailer-Datensatz zu einer Datei hinzuzufügen.

Betrachten wir eine Datei, file1.

$ cat file1
apple
orange
grapes
banana

Hinzufügen einer Zeile am Anfang der Datei (Header)

1. So fügen Sie einen Header-Datensatz mit sed hinzu:

$ sed '1i some text at the beginning' file1
some text at the beginning
apple
orange
grapes
banana

Das '1i' in sed enthält (i) die Zeile etwas Text am Anfang nur vor der ersten Zeile (1) der Datei. Der obige Befehl zeigt den Dateiinhalt zusammen mit dem Header an, ohne die Datei zu aktualisieren. Um die Originaldatei selbst zu aktualisieren, verwenden Sie die Option -i von sed wie unten gezeigt:

$ sed -i.bkp '1i some text at the beginning' file1

Die Option -i.bkp erstellt eine Sicherungsdatei mit dem Namen file1.bkp, bevor Änderungen an der Originaldatei vorgenommen werden. Die Erweiterung .bkp kann beliebig sein.

2. Sie können auch dieses Beispiel von sed verwenden, um eine Kopfzeile einzufügen:

$ sed '1s/^/some text at the beginning\n/' file1

Die „1“ gibt die Zeilennummer an, die nur abgeglichen wird, wenn die Substitution mit dem Befehl „s“ durchgeführt wird. Das Symbol „^“ zeigt den Beginn der Zeile an. Beachten Sie auch den am Ende hinzugefügten Wagenrücklauf ‚\n‘, der hilft, nach dem Ersetzen eine neue Zeile zu drucken.

3. Sie können auch den cat-Befehl mit der bash-printf-Anweisung verwenden, um eine Zeile am Anfang der Datei hinzuzufügen.

$ printf '%b' 'some text at the beginning\n' | cat - file1

4. So fügen Sie mit awk einen Header-Datensatz zu einer Datei hinzu:

$ awk 'BEGIN{print "some text at the beginning"}1' file1
some text at the beginning
apple
orange
grapes
banana

Der BEGINN Die Anweisung in awk macht die Anweisung am Anfang zu etwas Text, der gedruckt wird, bevor die Datei verarbeitet wird, und daher erscheint der Header in der Ausgabe. Die 1 soll angeben, dass jede Zeile der Datei gedruckt werden soll.

Hinzufügen einer Zeile am Ende der Datei (Trailer)

1. Der einfachste aller Befehle hier ist die einfache Verwendung der Umleitung, um eine Zeile am Ende der Datei anzuhängen. Zum Beispiel:

$ echo "some text at the end" >> file1

2. So fügen Sie mit sed einen Trailer-Datensatz zu einer Datei hinzu:

$ sed '$a some text at the end' file1
apple
orange
grapes
banana
some text at the end

Das $a bewirkt, dass sed die Anweisung nur nach der letzten Zeile ($) der Datei am Ende mit etwas Text anhängt (a).

3. So fügen Sie mit awk einen Trailer-Datensatz zu einer Datei hinzu:

$ awk '1;END{print "some text at the end"}' file
apple
orange
grapes
banana
some text at the end

Das ENDE label bewirkt, dass die Druckanweisung erst gedruckt wird, nachdem die Datei verarbeitet wurde. Die 1 soll jede Zeile drucken. 1 bedeutet tatsächlich wahr.

sed auf MAC OSX

sed verhält sich unter MAC OS kaum anders als GNU sed. Sie können das folgende Beispiel ausprobieren, um der Datei in MAC eine Kopfzeile hinzuzufügen.

$ sed -i '.bak' '1s/^/some text at the beginning\'$'\n/g' file1


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

  2. So löschen Sie Dateien und Verzeichnisse in Linux über die Befehlszeile

  3. So fügen Sie Textdateien unter Linux Zeilennummern hinzu

  4. So teilen und kombinieren Sie Dateien von der Befehlszeile in Linux

  5. Wie konvertiere ich Zeilenumbrüche in einer Textdatei zwischen den Formaten Windows und Unix/Linux?

So erstellen Sie Verzeichnisse aus einer Textdatei unter Linux

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

So finden Sie die längste(n) Zeile(n) in einer Datei in Linux

So erstellen und verwenden Sie eine Auslagerungsdatei unter Linux

So verstecken Sie Ordner und Dateien in Linux mithilfe einer Textdatei

So extrahieren Sie die Tar.xz-Datei in der Linux-Befehlszeile