Bash-Tool, um die n-te Zeile aus einer Datei zu erhalten
Gibt es eine "kanonische" Möglichkeit, das zu tun? Ich habe head -n | tail -1
benutzt, was auch funktioniert, aber ich habe mich gefragt, ob es ein Bash-Tool gibt, das speziell eine Zeile (oder einen Bereich von Zeilen) aus einer Datei extrahiert.
Mit "kanonisch" meine ich ein Programm, dessen Hauptfunktion darin besteht, dies zu tun.
535
3
head
und pipe mittail
wird bei einer großen Datei langsam sein. Ich würdesed
wie folgt vorschlagen:Wobei
NUM
die Nummer der Zeile ist, die Sie ausdrucken wollen; also zum Beispielsed '10q;d' file
, um die 10te Zeile vonfile
zu drucken.Erläuterung:
NUMq
wird sofort beendet, wenn die ZeilennummerNUM
ist.d
löscht die Zeile, anstatt sie zu drucken; dies wird bei der letzten Zeile verhindert, weilq
den Rest des Skripts beim Beenden überspringt.Wenn Sie
NUM
in einer Variablen haben, sollten Sie doppelte Anführungszeichen anstelle von einfachen verwenden:wird 2. Zeile drucken
Zeile 10 bis Zeile 33
und so weiter...
Für das Hinzufügen von Zeilen mit sed, können Sie dies überprüfen:
https://stackoverflow.com/q/15555781/#16246806
Sie können dafür auch Perl verwenden: