Wie kann ich die Ausgabe eines Befehls an das Ende einer Textdatei anhängen?
Antworten
Zu viele Anzeigen?An append
eine Datei verwenden >>
echo "hello world" >> read.txt
cat read.txt
echo "hello siva" >> read.txt
cat read.txt
dann sollte die Ausgabe lauten
hello world # from 1st echo command
hello world # from 2nd echo command
hello siva
An overwrite
eine Datei verwenden >
echo "hello tom" > read.txt
cat read.txt
dann lautet das Ergebnis
hello tom
Sie können den Operator >> verwenden. Damit werden Daten aus einem Befehl an das Ende einer Textdatei angehängt.
Um dies zu testen, führen Sie den Befehl aus:
echo "Hi this is a test" >> textfile.txt
Machen Sie das ein paar Mal und laufen Sie dann los:
cat textfile.txt
Sie werden sehen, dass Ihr Text mehrmals an die Datei textfile.txt angehängt wurde.
Utilice command >> file_to_append_to
um an eine Datei anzuhängen.
Zum Beispiel echo "Hello" >> testFile.txt
VORSICHT! wenn Sie nur eine einzige >
überschreiben Sie den Inhalt der Datei. Um sicherzustellen, dass dies nicht passiert, können Sie Folgendes hinzufügen set -o noclobber
zu Ihrem .bashrc
.
Dadurch wird sichergestellt, dass Sie bei versehentlicher Eingabe von command > file_to_append_to
zu einer bestehenden Datei hinzufügen, werden Sie darauf hingewiesen, dass die Datei bereits existiert. Beispiel einer Fehlermeldung: file exists: testFile.txt
Wenn Sie also >
können Sie nur eine neue Datei erstellen, nicht aber eine bestehende Datei überschreiben.
Verwendung von tee mit Option -a (--append) ermöglicht es Ihnen, an mehrere Dateien gleichzeitig anzuhängen und auch die sudo (sehr nützlich beim Anhängen an geschützte Dateien). Außerdem ist es interessant, wenn Sie neben der Bash noch andere Shells verwenden müssen, da nicht alle Shells die Operatoren > und >> unterstützen
echo "hello world" | sudo tee -a output.txt
Este Gewinde hat gute Antworten über Tee
- See previous answers
- Weitere Antworten anzeigen