Wie hänge ich die Ausgabe eines Befehls an das Ende einer Textdatei an?
478
Verwenden Sie >>
anstelle von, >
wenn Sie die Ausgabe in eine Datei leiten:
your_command >> file_to_append_to
Wenn file_to_append_to
nicht vorhanden, wird es erstellt.
Beispiel:
$ echo "hello" > file
$ echo "world" >> file
$ cat file
hello
world
echo
die Zeilenumbrüche aus der Zeichenfolge entfernt werden. Wie hängt man an eine Datei eine Zeichenfolge an, die Zeilenumbrüche enthält?Um
append
eine Datei zu verwenden>>
dann sollte die Ausgabe sein
Um
overwrite
eine Datei zu verwenden>
dann ist die Ausgabe
hello tom
quelle
Sie können den Operator >> verwenden. Dadurch werden Daten aus einem Befehl an das Ende einer Textdatei angehängt.
Um dies zu testen, versuchen Sie Folgendes auszuführen:
Tun Sie dies ein paar Mal und führen Sie dann Folgendes aus:
Sie werden sehen, dass Ihr Text mehrmals an die Datei textfile.txt angehängt wurde.
quelle
Verwenden Sie
command >> file_to_append_to
diese Option, um eine Datei anzuhängen.Zum Beispiel
echo "Hello" >> testFile.txt
VORSICHT: Wenn Sie nur eine einzige verwenden
>
, überschreiben Sie den Inhalt der Datei. Um sicherzustellen, dass dies niemals passiert, können Sieset -o noclobber
Ihre hinzufügen.bashrc
.Dadurch wird sichergestellt, dass Sie bei versehentlichem Eingeben
command > file_to_append_to
in eine vorhandene Datei darauf hingewiesen werden, dass die Datei bereits vorhanden ist. Beispielfehlermeldung:file exists: testFile.txt
Wenn Sie es verwenden, können
>
Sie daher nur eine neue Datei erstellen und keine vorhandene Datei überschreiben.quelle
Verwenden Sie den
>>
Operator, um Text an eine Datei anzuhängen.quelle
Wenn Sie tee mit der Option -a (--append) verwenden, können Sie mehrere Dateien gleichzeitig anhängen und auch sudo verwenden (sehr nützlich beim Anhängen an geschützte Dateien). Außerdem ist es interessant, wenn Sie neben bash noch andere Shells verwenden müssen, da nicht alle Shells die Operatoren> und >> unterstützen
Dieser Thread hat gute Antworten zum Thema Tee
quelle
für die ganze Frage:
Dadurch werden 720 Zeilen (30 * 24) an o.txt angehängt und anschließend wird die Datei basierend auf dem aktuellen Datum umbenannt.
Führen Sie das oben genannte mit dem Cron jede Stunde aus, oder
quelle
Ich würde printf anstelle von echo verwenden, da es zuverlässiger ist und Formatierungen wie neue Zeilen
\n
ordnungsgemäß verarbeitet.Dieses Beispiel erzeugt eine Ausgabe ähnlich dem Echo in den vorherigen Beispielen:
Wenn Sie jedoch in diesem Beispiel printf durch echo ersetzen würden, würde echo \ n als Zeichenfolge behandeln und somit die Absicht ignorieren
quelle
Ich würde vorschlagen, dass Sie zwei Dinge tun:
>>
in Ihrem Shell-Skript, um Inhalte an eine bestimmte Datei anzuhängen. Der Dateiname kann festgelegt werden oder ein Muster verwenden.quelle
Zum Beispiel enthält Ihre Datei:
Wenn Sie am Ende der Datei anhängen möchten, dann ----> merken Sie sich Leerzeichen zwischen 'Text' >> 'Dateiname'.
Und um den Inhalt der Datei zu überschreiben:
quelle
cat
ist ... einfach völlig verrückt. (Es ist leer, weil Sie gerade die Standardausgabe in eine Datei umgeleitet haben.)