Wie kann ich bei einer Textdatei unbekannter Länge beispielsweise alle bis auf die ersten beiden Zeilen der Datei lesen ? Ich weiß tail
, dass ich die letzten N Zeilen bekomme, aber ich weiß nicht, was N vor der Zeit ist.
Also für eine Datei
AAAA
BBBB
CCCC
DDDD
EEEE
Ich will
CCCC
DDDD
EEEE
Und für eine Datei
AAAA
BBBB
CCCC
Ich würde nur bekommen
CCCC
command-line
scripting
tail
unix-head
Nicholas MT Elliott
quelle
quelle
head
?Angenommen, Ihre Version von tail unterstützt dies, können Sie angeben, dass der Schwanz nach X-Linien gestartet werden soll. In Ihrem Fall würden Sie 2 + 1 tun.
quelle
Eine einfache Lösung mit awk:
quelle
{ print }
ist die Standardaktion und kann weggelassen werden.Versuchen Sie es
sed 1,2d
. Ersetzen Sie 2 nach Bedarf.quelle
tail -n +linecount filename
startet die Ausgabe in Zeilelinecount
vonfilename
,tail -n +3 filename
sollte also tun, was Sie wollen.quelle
tail -n +17 filename
. Ich benutze Bash / Ubuntu LTStail
die Syntax akzeptiert, die ich in meiner ursprünglichen Antwort verwendet habe, aber jetzt muss man die explizite-n
Option verwenden. Ich habe meine Antwort entsprechend aktualisiert.Verwenden Sie diese Option, wenn das erste Sample dann sample1.dat heißt
tail --lines=3 sample1.dat
und alle Zeilen von der 3. bis zur letzten Zeile gedruckt werden.Nehmen wir für das zweite Beispiel erneut an, es heißt sample2.dat und
tail --lines=-1 sample2.dat
druckt die letzte Zeile ...quelle
tail +3 anyfile
die gewünschten Ergebnisse für den allgemeinen Fall liefert, währendtail --lines=N
N im Voraus bekannt sein muss, um das gewünschte Ergebnis zu erzielen.tail
... sollte das nicht "Bottoms Up" sein? (Ba-dum TISH! Danke, ich werde die ganze Woche hier sein ...)Ich weiß wirklich nicht, wie ich es nur mit dem Schwanz oder dem Kopf machen soll, aber mit Hilfe von
wc -l
(Zeilenanzahl) und Bash-Ausdruck können Sie das erreichen.Hoffe das hilft.
quelle
Verwenden Sie awk, um alle bis auf die letzten 2 Zeilen zu erhalten
awk, um alle bis auf die ersten 2 Zeilen zu bekommen
ODER Sie können mehr verwenden
oder einfach nur schlagen
quelle