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

Bash:In Datei schreiben

Eine der häufigsten Aufgaben beim Schreiben von Bash-Skripten oder Arbeiten an der Linux-Befehlszeile ist das Lesen und Schreiben von Dateien.

Dieser Artikel erklärt, wie man Text in eine Datei in Bash schreibt, indem man die Umleitungsoperatoren und tee verwendet Befehl.

Schreiben in eine Datei mit Umleitungsoperatoren #

In Bash ermöglicht Ihnen die Umleitung der Ausgabe, die Ausgabe eines Befehls zu erfassen und in eine Datei zu schreiben.

Das allgemeine Format zum Umleiten und Schreiben der Ausgabe in eine Datei lautet wie folgt:

output > filename 
output >> filename 
  • Der > Der Umleitungsoperator schreibt die Ausgabe in eine angegebene Datei. Wenn die Datei vorhanden ist, wird sie auf die Länge null gekürzt. Andernfalls wird die Datei erstellt. Seien Sie besonders vorsichtig, wenn Sie diesen Operator verwenden, da Sie möglicherweise eine wichtige Datei überschreiben.
  • Der >> Der Umleitungsoperator hängt die Ausgabe an eine bestimmte Datei an. Die Datei wird erstellt, wenn sie nicht existiert.

Sie benötigen Schreibrechte für die Datei. Andernfalls erhalten Sie eine Fehlermeldung zur Verweigerung der Berechtigung.

Hier ist ein einfaches Beispiel, das zeigt, wie die Ausgabe von echo umgeleitet wird Befehl in eine Datei:

echo "this is a line" > file.txt

Um das Überschreiben vorhandener Dateien zu verhindern, aktivieren Sie die Option „noclobber“ mit dem set eingebaut:

set -o noclobberecho "this is a line" > file.txt
bash: file.txt: cannot overwrite existing file

Der >| Mit dem Operator können Sie die Bash-Option „noclobber“ überschreiben:

set -o noclobberecho "this is a line" >| file.txt

Der >> Operator die Ausgabe an das Ende der Datei anhängen, anstatt die Datei zu überschreiben:

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

Verwenden Sie den printf Befehl zum Erstellen einer komplexen Ausgabe:

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

Wenn Sie mehrere Zeilen in eine Datei schreiben möchten, verwenden Sie die Here-Dokument(Heredoc)-Umleitung.

Beispielsweise können Sie den Inhalt an cat übergeben Befehl und schreibe ihn in eine Datei:

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

Um die Zeilen anzuhängen, ändern Sie > mit >> vor dem Dateinamen:

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

Sie können die Ausgabe jedes Befehls in eine Datei schreiben:

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

Die Ausgabe des date Befehl wird in die Datei geschrieben.

Schreiben in eine Datei mit dem tee Befehl #

Das tee Der Befehl liest von der Standardeingabe und schreibt gleichzeitig sowohl in die Standardausgabe als auch in eine oder mehrere Dateien.

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

Das tee Das Standardverhalten des Befehls besteht darin, die angegebene Datei zu überschreiben, genau wie > Operator. Um die Ausgabe an die Datei anzuhängen, rufen Sie den Befehl mit -a auf (--append ) Option:

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

Wenn Sie das tee nicht möchten Um in die Standardausgabe zu schreiben, können Sie sie nach /dev/null umleiten :

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

Um den Text in mehr als eine Datei zu schreiben, geben Sie die Dateien als Argumente für tee an Befehl:

echo "this is a line" | tee file_1.txt file_2.txt file_3.txt

Ein weiterer Vorteil des tee Befehl ist, dass Sie ihn in Verbindung mit sudo verwenden können und in Dateien 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 :

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

Das echo Die Befehlsausgabe wird als Eingabe an tee übergeben , das die sudo-Berechtigungen erhöht und den Text in die Datei schreibt.

Schlussfolgerung #

Um unter Linux Text in eine Datei zu schreiben, verwenden Sie > und >> Umleitungsoperatoren oder das tee Befehl.


Linux
  1. Wie schreibe ich eine Schleife in Bash?

  2. Kann ein Bash-Skript mit einer Datei verknüpft werden?

  3. Alle Tmux-Scrollbacks in eine Datei schreiben?

  4. Leiten Sie die gesamte Ausgabe in eine Datei in Bash um

  5. Wie schreibe ich mit Bash Integer in eine Binärdatei?

Bash:An Datei anhängen

Ersetzen von Zeichenfolgen in Bash

35 Bash-Skriptbeispiele

Bash-Scripting:So schreiben Sie Daten in Textdateien

Bash-Scripting(III)

Unix Sed Tutorial:So schreiben Sie mit Sed in eine Datei