[gelöst] alle Zeilen einer Textdatei löschen mit Ausnahme der letzten 5 Zeilen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
saxandl
Beiträge: 90
Registriert: 06.09.2011 07:17:00

[gelöst] alle Zeilen einer Textdatei löschen mit Ausnahme der letzten 5 Zeilen

Beitrag von saxandl » 10.10.2018 15:21:31

Hallo!

Ich habe eine logdatei, bei der ich gerne alle Zeilen ausser den letzten 5 Zeilen löschen möchte.
Und das am liebsten mit einem Einzeiler ;-)

danke
Zuletzt geändert von saxandl am 10.10.2018 16:30:08, insgesamt 2-mal geändert.

MSfree
Beiträge: 3554
Registriert: 25.09.2007 19:59:30

Re: alle Zeilen einer Textdatei löschen mit Ausnahme der letzten 5 Zeilen

Beitrag von MSfree » 10.10.2018 15:50:44

Code: Alles auswählen

tail -5 EingabeDatei > AusgabeDatei

saxandl
Beiträge: 90
Registriert: 06.09.2011 07:17:00

Re: alle Zeilen einer Textdatei löschen mit Ausnahme der letzten 5 Zeilen

Beitrag von saxandl » 10.10.2018 15:59:30

@MSfree

Danke! das funktioniert, wenn EingabeDatei != AusgabeDatei.
Wenn aber EingabeDatei == AusgabeDatei wird diese auf 0 gesetzt
ich möchte aber EingabeDatei aktualisieren

MSfree
Beiträge: 3554
Registriert: 25.09.2007 19:59:30

Re: alle Zeilen einer Textdatei löschen mit Ausnahme der letzten 5 Zeilen

Beitrag von MSfree » 10.10.2018 16:01:35

Code: Alles auswählen

tail -5 EingabeDatei > AusgabeDatei; mv AusgabeDatei EingabeDatei
oder

Code: Alles auswählen

cat EingabeDatei | tail -5 > EingabeDatei
Zuletzt geändert von MSfree am 10.10.2018 16:02:51, insgesamt 1-mal geändert.

uname
Beiträge: 9542
Registriert: 03.06.2008 09:33:02

Re: alle Zeilen einer Textdatei löschen mit Ausnahme der letzten 5 Zeilen

Beitrag von uname » 10.10.2018 16:02:36

Nicht probiert

Code: Alles auswählen

sed -e :a -e '$q;N;5,$D;ba'  file_name
Wenn die Ausgabe korrekt ist verwende zusätzlich die Option -i

saxandl
Beiträge: 90
Registriert: 06.09.2011 07:17:00

Re: alle Zeilen einer Textdatei löschen mit Ausnahme der letzten 5 Zeilen

Beitrag von saxandl » 10.10.2018 16:28:31

Code: Alles auswählen

tail -5 EingabeDatei > AusgabeDatei; mv AusgabeDatei EingabeDatei
:THX:

danke!

Benutzeravatar
Meillo
Moderator
Beiträge: 5091
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: [gelöst] alle Zeilen einer Textdatei löschen mit Ausnahme der letzten 5 Zeilen

Beitrag von Meillo » 10.10.2018 16:31:53

Code: Alles auswählen

printf '1,$-5d\nw\n' | ed - foo
Use ed(1) once in a while!

Antworten