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.
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% 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.