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

Bash:An Datei anhängen

In Bash gibt es mehrere Möglichkeiten, Text an eine Datei anzuhängen. Dieser Artikel erklärt einige davon.

Um Text an eine Datei anzuhängen, benötigen Sie Schreibrechte dafür. Andernfalls erhalten Sie eine Fehlermeldung zur Verweigerung der Berechtigung.

Mit dem Umleitungsoperator an eine Datei anhängen (>> ) #

Mit der Umleitung können Sie die Ausgabe eines Befehls erfassen und als Eingabe an einen anderen Befehl oder eine andere Datei senden. Der >> Der Umleitungsoperator hängt die Ausgabe an eine bestimmte Datei an.

Es gibt eine Reihe von Befehlen, mit denen Sie Text auf der Standardausgabe ausgeben und mit echo in die Datei umleiten können und printf die am häufigsten verwendeten sind.

Um Text an eine Datei anzuhängen, geben Sie den Namen der Datei nach dem Umleitungsoperator an:

echo "this is a new line" >> file.txt

Bei Verwendung mit dem -e Option echo Der Befehl interpretiert die mit Backslash maskierten Zeichen wie Newline \n :

echo -e "this is a new line \nthis is another new line" >> file.txt

Um eine komplexere Ausgabe zu erzeugen, verwenden Sie printf Befehl, mit dem Sie die Formatierung der Ausgabe festlegen können:

printf "Hello, I'm %s.\n" $USER >> file.txt

Eine andere Möglichkeit, Text an eine Datei anzuhängen, ist die Verwendung des Here-Dokuments (Heredoc). Es ist eine Art Umleitung, mit der Sie mehrere Eingabezeilen an einen Befehl übergeben können.

Beispielsweise können Sie den Inhalt an cat übergeben Befehl und an eine Datei anhängen:

cat << EOF >> file.txt
The current working directory is: $PWD
You are logged in as: $(whoami)
EOF

Sie können die Ausgabe jedes Befehls an eine Datei anhängen. Hier ist ein Beispiel mit dem date Befehl:

date +"Year: %Y, Month: %m, Day: %d" >> file.txt

Achten Sie beim Anhängen an eine Datei mithilfe einer Umleitung darauf, nicht > zu verwenden Operator, um eine wichtige vorhandene Datei zu überschreiben.

Mit dem tee an eine Datei anhängen Befehl #

tee ist ein Befehlszeilendienstprogramm in Linux, das von der Standardeingabe liest und gleichzeitig sowohl in die Standardausgabe als auch in eine oder mehrere Dateien schreibt.

Standardmäßig das tee Befehl überschreibt die angegebene Datei. Um die Ausgabe an die Datei anzuhängen, verwenden Sie tee mit dem -a (--append ) Option:

echo "this is a new line"  | tee -a file.txt

Wenn Sie kein tee möchten Um in die Standardausgabe zu schreiben, leiten Sie sie nach /dev/null um :

echo "this is a new line"  | tee -a file.txt >/dev/null

Der Vorteil der Verwendung des tee Befehl über >> Betreiber ist das tee ermöglicht es Ihnen, Text an mehrere Dateien gleichzeitig anzuhängen und in Verbindung mit sudo in Dateien zu schreiben, die anderen Benutzern gehören .

Um Text an eine Datei anzuhängen, für die Sie keine Schreibberechtigung haben, stellen Sie sudo voran vor tee wie unten gezeigt:

echo "this is a new line" | sudo tee -a file.txt

tee erhält die Ausgabe von echo Befehl, erhöht die sudo-Berechtigungen und schreibt in die Datei.

Um Text an mehr als eine Datei anzuhängen, geben Sie die Dateien als Argumente für tee an Befehl:

echo "this is a new line"  | tee -a file1.txt file2.txt file3.txt

Schlussfolgerung #

Um unter Linux Text an eine Datei anzuhängen, verwenden Sie >> Umleitungsoperator oder das tee Befehl.

Wenn Sie Fragen oder Feedback haben, können Sie gerne einen Kommentar hinterlassen.


Linux
  1. Die Bash‘?

  2. Durchführen von atomaren Schreibvorgängen in einer Datei in Bash?

  3. Wie parse ich eine CSV-Datei in Bash?

  4. Bash:Keine solche Datei oder Verzeichnis?

  5. Wie kann ich als sudo an eine Datei anhängen?

Bash-Quellbefehl

So leiten Sie stderr in Bash auf stdout um

Ersetzen von Zeichenfolgen in Bash

35 Bash-Skriptbeispiele

Bash-Skripting – Bedingte Anweisungen

Bash-Scripting(III)