So löschen Sie die ersten X-Zeilen basierend auf minimalen Zeilen in der Datei

8

Ich habe eine Datei mit 10.000 Zeilen. Mit dem folgenden Befehl lösche ich alle Zeilen nach Zeile 10.000.

%Vor%

Allerdings möchte ich jetzt die ersten X Zeilen löschen, so dass die Datei nicht mehr als 10.000 Zeilen hat.

Ich denke, es wäre etwa so:

%Vor%

Wobei $x die Anzahl der Zeilen über 10.000 wäre. Ich bin ein bisschen darauf fest, wie ich das wenn, dann einen Teil davon schreiben soll. Oder ich dachte, ich könnte den ursprünglichen Befehl und nur cat die Datei in umgekehrter Reihenfolge verwenden?

Zum Beispiel, wenn wir nur 3 Zeilen von unten wollten (scheint nach ein paar hilfreiche Antworten einfacher):

Eingabe:

%Vor%

Erwartete Ausgabe:

%Vor%

Wenn Sie einen effizienteren Weg zum Schreiben des Befehls kennen, wäre ich natürlich auch dafür offen. Ihre positive Eingabe wird sehr geschätzt.

    
DomainsFeatured 11.11.2016, 21:00
quelle

6 Antworten

4

Der Einfachheit halber würde ich die Datei umkehren, die ersten 10000 Zeilen beibehalten und dann die Datei erneut umkehren.

Es macht das Speichern der Datei an Ort und Stelle komplizierter

%Vor%

Ohne die Datei umzukehren, würden Sie die Anzahl der Zeilen zählen und rechnen:

%Vor%     
glenn jackman 11.11.2016, 21:05
quelle
10

tail kann genau das tun, was Sie wollen.

%Vor%     
kaylum 11.11.2016 21:19
quelle
3
%Vor%

Füge -i inplace hinzu wenn du GNU awk hast und "inplace" editieren willst.

    
Ed Morton 11.11.2016 21:32
quelle
3

Um die ersten 10000 Zeilen zu behalten:

%Vor%

Um die letzten 10000 Zeilen zu behalten:

%Vor%

Testen Sie mit Ihrer Datei Beispiel

%Vor%     
V. Michel 11.11.2016 21:28
quelle
2

tac file.txt | sed "$x q" | tac | sponge file.txt

Der Befehl sponge ist hier nützlich, um eine zusätzliche temporäre Datei zu vermeiden.

    
eddiem 11.11.2016 21:05
quelle
2

tail -10000 <<<"$(cat file.txt)" > file.txt

Okay, nicht «nur» tail , aber auf diese Weise ist es in der Lage, die Stelle zu verkürzen.

    
hidefromkgb 11.11.2016 21:18
quelle

Tags und Links