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

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

Linux-Befehlszeilenbenutzer sind mit dem Konzept der Umleitungsoperatoren vertraut, die Ausgaben in eine Datei schreiben oder Eingaben aus einer Datei lesen können.

Der Operator '>' schreibt die Ausgabe in eine neue Datei oder in eine vorhandene Datei; in diesem Fall löscht es alles, was zuvor in der Datei vorhanden war. Der Operator '>>' hingegen hängt die Ausgabe am Ende einer bestehenden Datei an. Es gibt jedoch keinen speziellen Operator, um neuen Text an den Anfang einer Datei zu schreiben.

Heute werden wir zwei Möglichkeiten sehen, um unter Linux Text am Anfang einer Datei hinzuzufügen:eine mit einer Problemumgehung und eine mit einem Befehl.

Hinweis :Es ist ein guter Ansatz, zuerst die Originaldatei zu sichern und dann den neuen Text an die Originaldatei anzuhängen. Auf diese Weise können wir die Sicherungsdatei jederzeit wiederherstellen, wenn bei der Verwendung der Befehle ein Fehler auftritt. Z.B. Sie können einfach eine Datei namens „file1“ kopieren ' in eine andere Datei namens 'file1_bkp “ und fügen Sie dann den Text an das Original an, also „Datei1 ’.

Text am Dateianfang mit Echo- und Cat-Befehlen hinzufügen

Wie Sie vielleicht wissen, gibt der echo-Befehl alles aus, was als Argument an die Ausgabe übergeben wird, während der cat-Befehl gibt den Inhalt einer Datei in die Ausgabe aus.

Wir können also den neu hinzuzufügenden Text an echo übergeben , übergeben Sie die Datei an eine Katze, kombinieren Sie und schreiben Sie die Ausgabe in die Datei. Dies kann wie folgt erfolgen:

$ x=`echo "New Text"; cat filename`
$ echo "$x" > filename

Grundsätzlich kombinieren wir den neuen Text und den vorhandenen Inhalt der Datei und speichern den neuen Inhalt in einer Variablen. Dann geben wir einfach die Variable aus und leiten sie in dieselbe Datei um.

$ cat samplefile.txt
$ x=`echo "Name: John"; cat samplefile.txt`
$ cat samplefile.txt

Wie Sie oben sehen können, wurde der neue Text in einer neuen Zeile am Anfang der Datei hinzugefügt. Um den Text am Anfang der bestehenden ersten Zeile hinzuzufügen, verwenden Sie das -n Argument des Echos.

$ x=`echo -n "New Text"; cat filename`
$ echo "$x" > filename
Beachten Sie, dass obwohl Bash oder viele andere Shells haben keine Größenbeschränkung für Variablen, die Größe kann jedoch je nach Umgebung und Systemkonfiguration begrenzt sein. Daher kann es vorkommen, dass „samplefile.txt “ ist eine Datei, die eine riesige Menge an Daten enthält, und die Variable kann nicht alles speichern.

Fügen Sie mit dem Befehl sed Text zur ersten Zeile der Datei hinzu

gesendet (kurz für „Stream-Editor ‘) ist ein Befehlszeilen-Editor in Linux, der verwendet wird, um Operationen wie das Schreiben von Text in eine Datei, Suchen und Ersetzen usw. auszuführen.

gesendet ist ein komplexer Befehl mit vielen Optionen, um Dateien auf verschiedene Weise zu bearbeiten. Wir werden bestimmte Funktionen von sed verwenden, um Text am Anfang einer Datei hinzuzufügen.

Führen Sie Folgendes aus, um Text in einer neuen Zeile am Anfang einzufügen.

$ sed -i '1i New Text' filename

Das -i argument sagt sed um die Datei selbst zu ändern. Ohne es, sed erstellt automatisch eine Kopie der Datei und führt alle Änderungen an der Kopie durch.

Die Zeichenfolge ‘1i Neuer Text’ bedeutet:‚Einfügen‘ die Zeichenfolge ‘Neuer Text’ am „1.“ Linie.

$ cat samplefile.txt
$ sed -i '1i Introduction' samplefile.txt
$ $ cat samplefile.txt

Auch hier wird der neue Inhalt am Anfang in einer neuen Zeile hinzugefügt. Um neuen Text in die vorhandene Zeile einzufügen, führen Sie Folgendes aus:

$ sed -i '1s/^/New Text/' filename

Grundsätzlich das Exponentensymbol (‘^’) bedeutet eine Nullzeichenfolge. Der '1' am Anfang bedeutet, dass sed sollte den Null-String am Anfang von Zeile 1 und den 's' berücksichtigen ist ein sed Befehl, um eine Zeichenfolge zu ersetzen. Hier wird der Null-String durch „Neuer Text“ ersetzt ‘.

$ cat samplefile.txt
$ sed -i '1s/^/Person/' samplefile.txt
$ cat samplefile.txt
Schlussfolgerung

Wir haben zwei einfache, aber eingängige Methoden kennengelernt, um unter Linux neuen Text am Anfang einer Datei hinzuzufügen. Natürlich ist der offensichtliche Weg, dies zu tun, wenn es manuell gemacht werden soll, die Datei mit einem Dateieditor zu ändern. In einem Skript können die hier besprochenen Methoden jedoch verwendet werden.

Danke fürs Lesen und teilen Sie uns Ihre Gedanken in den Kommentaren unten mit!


Linux
  1. So verwenden Sie den Tar-Befehl unter Linux

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

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

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

  5. So fügen Sie eine .so-Datei zum java.library.path in Linux hinzu

So verwenden Sie den Linux-Kopfbefehl

So verwenden Sie den Linux-diff-Befehl

So erstellen Sie eine Datei unter Linux

So erstellen Sie Verzeichnisse aus einer Textdatei unter Linux

So entpacken Sie die gz-Dateien unter Linux

Wie verwende ich den Gzip-Befehl unter Linux?