Wie man Text mit Bash an eine Datei anhängt

Suraj Joshi 30 Januar 2023
  1. Text mit dem Umleitungsoperator >> an eine Datei anhängen
  2. Text mit dem tee-Befehl an eine Datei anhängen
Wie man Text mit Bash an eine Datei anhängt

Wir können Text mit dem Umleitungsoperator (>>) und dem Befehl tee an eine Datei anhängen.

Wir müssen sicherstellen, dass wir genügend Berechtigungen haben, um Text an die Datei anzufügen. Wenn wir nicht genügend Berechtigungen haben, erhalten wir möglicherweise den Fehler permission denied error.

Text mit dem Umleitungsoperator >> an eine Datei anhängen

Der Umleitungsoperator >> holt die Ausgabe von den bash-Befehlen und hängt die Ausgabe an eine andere Datei an. Es gibt viele Möglichkeiten, den Text auf die Standardausgabe zu drucken, wobei echo und printf die beliebtesten Befehle sind.

Um den Text an eine Datei anzuhängen, schreiben wir einen Befehl zum Drucken des Textes mit einem der Ausgabebefehle und hängen dann den Operator >> an den Befehl an, gefolgt vom Namen der Datei, in die der Text eingefügt werden soll.

echo "Hello World" >> abc.txt

Dadurch wird der Text Hello World am Ende der Datei abc.txt hinzugefügt.

Wenn die Datei im aktuellen Arbeitsverzeichnis nicht existiert, erzeugt der Befehl eine leere Datei und schreibt den Text Hello World in die Datei.

Um die Escape-Sequenz-Zeichen wie \n zu interpretieren, verwenden wir die Option -e mit dem Befehl echo.

echo -e "Hello World! \nThis is DelftStack" >> abc.txt

Dadurch wird der Text angehängt

Hello World!
This is DelftStack

in die Datei abc.txt.

Um zu überprüfen, ob der Text angehängt wurde oder nicht, können wir den cat-Befehl verwenden, um den Inhalt der Datei anzusehen.

cat abc.txt

Ausgabe:

Hello World! 
This is DelftStack

Wenn der Text angehängt wurde, k?nnen wir den Text am Ende der Datei sehen.

Wenn wir mehr formatierten Text wünschen, können wir den Befehl printf verwenden, um mehr formatierte Ausgabe zu erzeugen.

printf "The path of shell interpreter is %s\n" $SHELL >> abc.txt

Er fügt den Text The path of shell interpreter is /bin/bash der Datei abc.txt hinzu.

Text mit dem tee-Befehl an eine Datei anhängen

tee ist ein Kommandozeilen-Dienstprogramm, das Eingaben von der Standardeingabe entgegennimmt und sie gleichzeitig in eine oder mehrere Dateien und die Standardausgabe schreibt.

Standardmäßig überschreibt der Befehl tee den Inhalt der Dateien. Um den Text einfach an das Ende der Datei anzuhängen, verwenden wir die Option -a oder --append mit dem Befehl.

echo "Hello World!" | tee -a abc.txt

Ausgabe:

Hello World!

Es hängt Hello World! an die Datei abc.txt an und schreibt den Text auch in die Standardausgabe im Terminal.

Wenn wir beim Anhängen von Text an eine Datei denied permission denied error erhalten, können wir das Schlüsselwort sudo vor dem Befehl tee einfügen.

echo "Hello World!" | sudo tee -a abc.txt

Wenn wir die Standardausgabe nicht sehen wollen, können wir die Ausgabe nach /dev/null umleiten.

 echo "Hello World!"  | tee -a abc.txt >/dev/null

Ein Vorteil der Verwendung des Befehls tee ist, dass wir den Text mit dem Befehl tee in mehrere Dateien gleichzeitig schreiben können. Um den Text in mehrere Dateien zu schreiben, können wir einfach alle Dateien durch ein Leerzeichen getrennt auflisten.

echo "Hello World!" | sudo tee -a abc.txt backup.txt

Dadurch wird der Text gleichzeitig an die beiden Dateien abc.txt und backup.txt angehängt.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn