7 Möglichkeiten zum Anhängen von Text an eine Datei unter Linux
Linux
2024-01-09T14:00:19Z
Schnelle Links
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 touch append.txt 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. 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. > 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 >> 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 Dieses Mal wird die Zeile wie erwartet an die Datei angehängt. 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 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 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 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 Diesmal befindet sich die Eingabeaufforderung des Terminals in einer neuen Zeile, anders als im vorherigen Fall. 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 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 In diesem Fall wurde die Zeile genau nach der vierten Zeile eingefügt. 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.
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 Wie Sie sehen, wird die eingegebene Zeichenkette nicht noch einmal im Terminal angezeigt. 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 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. 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 Denken Sie daran, den ersetzen 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. >> 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 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. 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. 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. 1. Echo zum Anhängen von Text an eine Datei verwenden
2. Cat zum Anhängen von Text an eine Datei verwenden
3. Verwenden von printf zum Hinzufügen von Text am Ende einer Datei
4. Sed verwenden
5. Mit tee Text an eine Datei anhängen
6. Verwendung von awk
7. Einen Texteditor zum Anhängen von Text verwenden
Wie man die Ausgabe eines Befehls in eine Datei umleitet
Anhängen der Standardausgabe und des Standardfehlers an eine Datei
Bessere Erfahrungen bei der Dateimanipulation unter Linux