Ich kann nicht nach einer bestimmten Zeichenfolge suchen, da sie alle sehr ähnlich sind, aber ich möchte etwas Einfaches, um die ersten 4 Zeilen in einer Datei auszuhacken.
Sie sind alle auch variable Länge. Ich habe über Perl nachgedacht, und es scheint alles schwieriger als ich dachte, aber ich würde es gerne in Perl, AWK oder einem Shell-Befehl tun, wenn möglich.
Hat jemand eine einfache Möglichkeit, dies zu tun?
Überspringt die erste Zeile in filename
und gibt sie an stdout aus. Die Option -n+2
bedeutet, die Ausgabe von Zeilen beginnend mit der zweiten Zeile zu beginnen.
Natürlich können Sie 2 durch die Nummer ersetzen, die Sie benötigen (Ihr Titel und der Inhalt der eigentlichen Frage sagen jeweils zuerst und fünf).
löscht die ersten vier Zeilen seiner Eingabedatei. (Wenn Sie nur die erste Zeile löschen möchten, können Sie stattdessen '1d'
verwenden.)
Das -i
-Flag steht für In-Place-Editing, was bedeutet, dass die Eingabedatei auch die Ausgabedatei ist und somit die Änderungen in die Originaldatei zurückgeschrieben werden. Wenn Sie es vorziehen, die Datei intakt zu lassen und den geänderten Inhalt einfach in stdout zu schreiben, lassen Sie einfach -i
weg.
Diese und viele andere sed
1-Liner finden Sie in einer praktischen Referenz hier:
entspricht
%Vor%oder
%Vor%entspricht
%Vor% Sie können -i
selbe wie in sed
verwenden.
Eine Lösung, die keine Skriptsprache benötigt (wie awk, sed, perl etc.):
%Vor%Die Idee besteht darin, die Anzahl der Zeilen in der Datei zu zählen, dann eins zu subtrahieren und das Ergebnis an den Befehl 'tail' zu übergeben.
Versuchen Sie Folgendes: sed -i 1d file
Eine allgemeine Regel:
Um die n
ersten Zeilen zu entfernen: sed '1,nd' file.txt
Beispiel: sed '1,4d' file.txt
zum Entfernen der ersten 4 Zeilen