713 Stimmen

Anhängen der Ausgabe an das Ende einer Textdatei

Wie kann ich die Ausgabe eines Befehls an das Ende einer Textdatei anhängen?

28voto

Nev Stokes Punkte 7453

Verwenden Sie die >> Operator, um Text an eine Datei anzuhängen.

24voto

Saurav Sahu Punkte 11267

Ich verwechsle oft beides. Es ist besser, sich durch ihre Leistung zu erinnern:

> für Overwrite

$ touch someFile.txt
$ echo ">" > someFile.txt
$ cat someFile.txt
  >
$ echo ">" > someFile.txt
$ cat someFile.txt
  >

>> für Anhängen

$ echo ">" > someFile.txt
$ cat someFile.txt
  >
$ echo ">" >> someFile.txt
$ cat someFile.txt
  >>

15voto

jm666 Punkte 58205

Für die gesamte Frage:

cmd >> o.txt && [[ $(wc -l <o.txt) -eq 720 ]] && mv o.txt $(date +%F).o.txt

Dies fügt 720 Zeilen (30*24) in o.txt ein und benennt die Datei anschließend nach dem aktuellen Datum um.

Führen Sie das oben genannte Programm jede Stunde mit dem Cron aus, oder

while :
do
    cmd >> o.txt && [[ $(wc -l <o.txt) -eq 720 ]] && mv o.txt $(date +%F).o.txt
    sleep 3600
done

15voto

Braden Holt Punkte 1465

Ich würde printf anstelle von echo verwenden, denn es ist zuverlässiger und verarbeitet Formatierungen wie neue Zeile \n richtig.

Dieses Beispiel erzeugt eine ähnliche Ausgabe wie echo in den vorherigen Beispielen:

printf "hello world"  >> read.txt   
cat read.txt
hello world

Wenn Sie jedoch in diesem Beispiel printf durch echo ersetzen würden, würde echo Folgendes behandeln \n als Zeichenkette und ignoriert somit die Absicht

printf "hello\nworld"  >> read.txt   
cat read.txt
hello
world

8voto

sballmer Punkte 124

Ich würde Ihnen zwei Dinge empfehlen:

  1. Utilice >> in Ihrem Shell-Skript, um den Inhalt einer bestimmten Datei anzuhängen. Der Dateiname kann fest oder nach einem bestimmten Muster gewählt werden.
  2. Einrichten eines stündlichen Cronjobs zum Auslösen des Shell-Skripts

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X