7 Möglichkeiten zum Anhängen von Text an eine Datei unter Linux


Linux
2024-01-09T14:00:19Z

Es kommt vor, dass Sie eine Textdatei mit bereits vorhandenem Inhalt haben und weiteren Text anhängen möchten. Glücklicherweise gibt es mehrere Linux-Befehle, mit denen Sie dies tun können. Einige dieser Befehle sind sogar leistungsfähig genug, um Text an beliebiger Stelle in Ihre Datei einzufügen.

Erstellen Sie zunächst eine Textdatei!

Um dem Tutorial folgen zu können, sollten Sie eine Testdatei bereithalten, in die Sie Zeilen einfügen und das Ergebnis betrachten können. Um eine leere Datei unter Linux zu erstellen, führen Sie den folgenden Befehl aus:

touch

Ersetzen Sie den Befehl durch den Namen der Datei. Wir werden sie zum Beispiel append.txt nennen. Wir können die Datei mit diesem Befehl erstellen:

touch append.txt

Linux terminal display the touch command to create an empty text file

Um den Inhalt der Datei zu sehen, führen Sie aus:

cat append.txt

Sie werden keine Ausgabe erhalten, da die Datei derzeit keinen Inhalt hat. Da wir nun eine leere Datei haben, können wir ihr einige Zeilen hinzufügen.

1. Echo zum Anhängen von Text an eine Datei verwenden

Der Befehl echo wird hauptsächlich zur Anzeige von Text auf dem Terminal verwendet, aber Sie können ihn auch verwenden, um Text in eine Datei einzufügen. Hier ist die grundlegende Syntax:

echo [OPTION] [STRING]

> Um den Befehl echo zum Hinzufügen von Zeilen zu einer Datei zu verwenden, benötigen Sie die Hilfe des Umleitungsoperators (). Um mit dem Befehl echo Textzeilen in eine Datei einzufügen, führen Sie aus:

>echo "string" Dateiname

Ersetzen Sie "string" durch den tatsächlichen Text innerhalb der Anführungszeichen. Machen Sie dasselbe für "filename" Wenn Sie zum Beispiel den Text "Dies ist eine Datei" in die Datei append.txt einfügen möchten, führen Sie aus:

>echo "Dies ist eine Datei" append.txt

Wenn Sie nun versuchen, den Inhalt der Datei mit dem Befehl cat zu lesen, sollten Sie die Zeile in der Ausgabe sehen.

Linux terminal shows how the echo command is used to add text to a file

> Mit einem einzigen Umleitungsoperator () können Sie jedoch keine Zeilen an die Datei anhängen. Wenn Sie versuchen, der obigen Datei mit demselben Befehl eine weitere Zeile hinzuzufügen, wird der vorhandene Inhalt der Datei überschrieben. Schauen wir uns das in Aktion an. Führen Sie den folgenden Befehl aus:

>echo "Versucht, eine Zeile an die Datei anzuhängen" append.txt

Linux terminal showcasing how the echo command can override the content of a text file

>> Wie kann man dies umgehen? Ganz einfach. Um einen Text an eine Datei anzuhängen, ohne ihren Inhalt zu überschreiben, verwenden Sie einen anderen Umleitungsoperator (), wie diesen:

>>echo "Versucht, eine Zeile an die Datei anzuhängen" append.txt

The Linux terminal shows the use of the echo command to append a line to a text file

Dieses Mal wird die Zeile wie erwartet an die Datei angehängt.

2. Cat zum Anhängen von Text an eine Datei verwenden

Der Befehl cat zeigt, wie wir bereits gesehen haben, den Inhalt einer Datei auf dem Terminal an. Die grundlegende Syntax des Befehls lautet:

cat [OPTION]... [DATEI]...

Im Gegensatz zum Befehl echo kann der Befehl cat keine Zeichenketten direkt als Parameter verwenden. Stattdessen können Sie den Inhalt einer Datei an eine andere anhängen. Verwenden Sie dazu den Befehl wie folgt:

>>cat Datei1 Datei2

Ersetzen Sie "file1" und "file2" durch die tatsächlichen Dateinamen. In unserem vorherigen Beispiel könnten wir also den Inhalt einer anderen Datei an die Datei append.txt anhängen:

>>cat andereDatei.txt append.txt

Linux terminal showing the use of the cat command to combine the contents of different files

Eine weitere gute Möglichkeit, den Befehl cat zu verwenden, besteht darin, den Inhalt mehrerer Dateien in einer einzigen Datei zusammenzufassen. Geben Sie dazu die Dateinamen als Argumente an, etwa so:

>>cat Datei1 Datei2 Datei3 Datei4

Angenommen, Sie haben drei verschiedene Textdateien mit den Daten von drei verschiedenen Mitarbeitern. Sie müssen sie in einer einzigen Datei zusammenfassen. Dazu führen Sie aus:

>>cat angestellte1.txt angestellte2.txt angestellte3.txt angestellte.txt

The Linux terminal shows how to use the cat command to combine the contents of several files and append them to another file

3. Verwenden von printf zum Hinzufügen von Text am Ende einer Datei

Mit printf sind Sie vielleicht vertraut, wenn Sie Erfahrung mit der Programmiersprache C haben. Aber wussten Sie, dass printf auch ein Linux-Tool ist? Wie der Name schon sagt, können Sie damit Text oder Daten auf der Standardausgabe ausgeben. Hier ist die grundlegende Syntax:

printf FORMAT [ARGUMENT]...

Um mit printf Text an eine Datei anzuhängen, führen Sie aus:

>>printf "Mit printf Text anhängen" append.txt

The Linux terminal displaying the use of the printf command to append text to a file

Wie Sie jedoch sehen können, wurde im Gegensatz zum Befehl echo keine neue Zeile an den Text angehängt. Das bedeutet, dass Sie dies manuell tun müssen. Sie können das Escape-Zeichen "/n" am Ende Ihres Textes verwenden. Lassen Sie uns das also jetzt verwenden.

>>printf "Mit printf einen Text mit einer neuen Zeile/n anhängen" append.txt

The Linux terminal shows how to use a new line character with the printf command

Diesmal befindet sich die Eingabeaufforderung des Terminals in einer neuen Zeile, anders als im vorherigen Fall.

4. Sed verwenden

Der Befehl sed, kurz für stream editor, führt grundlegende Textumwandlungen an Eingaben durch. Es gibt mehrere Möglichkeiten, diesen Befehl zu verwenden. Die grundlegende Syntax zum Anhängen von Text an Dateien sieht etwa so aus:

sed [OPTION] [SCRIPT] [FILE...]

Sehen wir uns nun an, wie Sie eine Zeile an eine Datei anhängen können. Befolgen Sie dazu das folgende Befehlsformat:

sed -i '$ a/'

Ersetzen Sie den Text innerhalb der spitzen Klammern (<>) durch die Textzeichenfolge bzw. den Dateinamen. Wenn Sie also eine Zeile am Ende der Datei anhängen wollen, führen Sie aus:

sed -i '$ a Do not feel sed' append.txt

The Linux terminal showing the use of sed command to append a line at the end of a file

Die Option "-i" teilt dem System mit, dass es die betreffende Datei zum Einfügen des Textes verwenden soll. Das "$"-Zeichen bedeutet, dass die Zeile am Ende der Datei eingefügt wird. Durch das "a" vor dem Text wird dem System mitgeteilt, dass die Zeile an den vorhandenen Inhalt der Datei angehängt werden soll.

Ein Vorteil des sed-Befehls ist, dass Sie den Text überall in der Datei einfügen können. Wenn Sie also zum Beispiel etwas nach der vierten Zeile hinzufügen wollen, verwenden Sie den Befehl wie folgt:

sed -i '4 a Angefügt nach der vierten Zeile' append.txt

The Linux terminal demonstrating the sed command used to append a text line at a specific position of a file

In diesem Fall wurde die Zeile genau nach der vierten Zeile eingefügt.

5. Mit tee Text an eine Datei anhängen

Mit dem Befehl tee können Sie von der Standardeingabe lesen und die Ausgabe in Dateien schreiben. Die grundlegende Syntax lautet wie folgt:

tee [OPTION]... [DATEI]...

Es gibt zwei Möglichkeiten, wie Sie mit dem Befehl tee Text an eine Datei anhängen können. Entweder Sie verwenden die Option "-a" oder den doppelten Umleitungsoperator. Schauen wir uns die erste Methode an.

tee -a append.txt

Nachdem Sie den Befehl ausgeführt haben, gelangen Sie in den interaktiven Modus. Sie können einen beliebigen Text schreiben und die Eingabetaste drücken, um ihn an die Datei anzuhängen. Daraufhin sehen Sie denselben Text als Ausgabe auf dem Terminal. Um die Eingabeaufforderung zu verlassen, drücken Sie Strg D.

The Linux terminal showing the use of the tee command to append a line to a file

Bei der anderen Methode wiederholt das Terminal die eingegebene Zeichenkette nicht, was den Vorgang viel sauberer macht. Ansonsten funktioniert es auf dieselbe Weise. Hier ist der Befehl:

>>tee append.txt

The Linux terminal showcasing the use of the tee command to append a line to a file

Wie Sie sehen, wird die eingegebene Zeichenkette nicht noch einmal im Terminal angezeigt.

6. Verwendung von awk

Der Befehl awk ist extrem leistungsfähig, wenn es um Textmanipulation geht. Mit einigen Anpassungen können Sie mit diesem Befehl Text in Dateien einfügen. Hier ist die Syntax für den Befehl:

>>awk 'BEGIN{print "Ungeschicktes Gefühl"}' append.txt

The Linux terminal displaying how to use the awk command to append a line to a file

Im obigen Beispiel haben wir die BEGIN-Regel des awk-Befehls verwendet, um einen Text zu drucken und ihn mit Hilfe der Umleitungsoperatoren an unsere Zieldatei zu senden.

7. Einen Texteditor zum Anhängen von Text verwenden

Dieses Beispiel ist recht einfach. Wenn Sie nicht gerne Befehle verwenden oder sich die Syntax nur schwer merken können, dann können Sie einfach einen beliebigen Linux-Texteditor verwenden, um Zeilen an eine Textdatei anzuhängen. In diesem Tutorial werden wir den Texteditor nano verwenden.

Um eine Datei in nano zu öffnen, verwenden Sie den folgenden Befehl:

nano

The content of a file called append.txt that was opened in the Nano text editor program

Denken Sie daran, den obigen Befehl durch den Pfad zu einer tatsächlichen Datei

zu

ersetzen . Sobald die Datei im Editor geöffnet ist, können Sie mit den Pfeiltasten durch den Text navigieren und mit der Tastatur alles eingeben, was Sie möchten.

Um eine Zeile anzuhängen, brauchen Sie nur die Pfeiltaste nach unten zu benutzen, um an das Ende der Datei zu gelangen. Wenn Sie eine neue Zeile erstellen möchten, drücken Sie die Eingabetaste. Geben Sie dann den gewünschten Text ein.

Zum Schluss speichern Sie die Datei mit Strg O und verlassen den Editor mit Strg X.

Wie man die Ausgabe eines Befehls in eine Datei umleitet

>> Wenn Sie die Ausgabe eines Befehls in einer Datei speichern wollen, können Sie das mit den Umleitungsoperatoren () tun. Angenommen, Sie führen den Befehl ls aus, um den Inhalt des aktuellen Verzeichnisses zu ermitteln. Sie möchten die Liste in einer Datei namens command.txt speichern. Führen Sie dazu den folgenden Befehl aus:

>>ls command.txt

The Linux terminal demonstrating how to save the output of a command to a file using the redirection operators

Das Gleiche gilt für jeden anderen Linux-Befehl. Sie schreiben den Befehl, fügen die Umleitungsoperatoren hinzu und dann den Dateinamen, unter dem Sie die Ausgabe speichern wollen.

Anhängen der Standardausgabe und des Standardfehlers an eine Datei

Bevor wir zum Schluss kommen, möchten wir Ihnen noch einen weiteren coolen Trick zur Dateimanipulation in Linux zeigen. Wenn Sie sowohl die Standardausgabe als auch den Standardfehler umleiten wollen, führen Sie aus:

>>>Befehl datei.txt 2&1

Anstelle des Feldes "Befehl" müssen Sie einen bestimmten Befehl eingeben, dessen Ausgabe Sie erfassen möchten. 1 und 2 sind Dateideskriptoren für die Standardausgabe bzw. den Standardfehler. Wir verwenden auch ein &-Zeichen, um anzuzeigen, dass die Zeichen vor und nach dem Umleitungsoperator Dateideskriptoren und keine Dateinamen sind.

Bessere Erfahrungen bei der Dateimanipulation unter Linux

Mit diesem neuen Wissen können Sie nun problemlos Text oder Zeichenketten an jede beliebige Datei anhängen. Je nach Ihrer Situation und Ihrer Vertrautheit mit Linux-Befehlen können Sie eine der oben genannten Methoden wählen.