Perl - fügen Sie die Letzte Zeile einer Datei
Ich bin ein Perl Neuling, kann jemand bitte lassen Sie mich wissen, wie das Anhängen einer output-Datei ist der Letzte Eintrag basierend auf dem aktuellen Wert?
E. g. Ich bin die Erzeugung einer Ausgabe-txt-Datei sagen
a b c d 10
Mit verarbeiten bekomme ich den Wert 20, und jetzt will ich diesen Wert 20 zugewiesen werden und an die der vorherigen Gruppe, die
a b c d 10
machen und es als
a b c d 10 20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vorausgesetzt, die Letzte Zeile hat keine newline
Wenn die Letzte Zeile bereits ein Zeilenumbruch, der Ausgang wird am Ende auf die nächste Zeile, d.h.
Einer längeren version arbeiten, in beiden Fällen wäre
Jedoch, diese version nicht ändern Sie die ursprüngliche Datei.
Versuchen, dies zu tun
one-liner version
Skript version
Beispiel-Ausgabe
Erklärung: Lesen Sie die gesamte Datei, indem Sie input record separator mit
-0777
führen Sie eine substitution auf die zu lesenden Daten entspricht die Datei-Endung, oder direkt vor der letzten Zeile.Können Sie auch die
-i
Schalter zu tun, in-place-editieren der input-Datei, aber die Methode ist riskant, denn es führt eine irreversible Veränderungen. Es kann verwendet werden, mit Sicherung, z.B.-i.bak
, aber das backup wird überschrieben, mehrere Ausführungen, so dass ich in der Regel empfehlen die Verwendung von shell-Umleitung statt, wie ich oben.Lesen Sie die gesamte Datei zuerst, Sie können es durch dieses Unterprogramm
read_file
: