Lesen Sie die erste Zeile einer Datei mit bash

8

Kennt jemand einen einfachen Einzeiler, um die erste Zeile einer Datei in Bash zu lesen?

ChrisInCambo
quelle

Antworten:

24
read -r FIRSTLINE < filename

Gleiches Ergebnis wie die anderen Antworten, jedoch schneller, da kein Prozess ausgelöst wird, da "Lesen" ein integrierter Bash-Befehl ist.

Etienne Dechamps
quelle
Guter Punkt, +1 für Sie
drAlberT
Dies ist viel besser als 'head -n 1'. Ich las die erste Zeile von 265 Dateien und meine Zeit ging von ungefähr 15 Sekunden auf weniger als 1 Sekunde
s3v1
16
head -1

einfach

drAlberT
quelle
6
FIRSTLINE=`head -n 1 filename`

Speichert die Zeile in einer Variablen zur späteren Verwendung (beachten Sie die invertierten Apostrophe).

Terje Mikal
quelle
5
$ (Befehl) ist eine alternative Form, die die Verwendung von Back-Ticks vermeidet und auf bestimmten Tastaturen nicht einmal einfach zu finden ist.
DrAlberT
1
Gute Antwort, aber ich stimme ab, weil die Antwort von e-t172 besser ist. Lesen ist dafür gedacht, und es ist eingebaut, um zu schlagen, wie er sagt.
Lee B
2
Nein, eine "gute Antwort" abzustimmen, weil es nicht die bestmögliche ist, ist nicht so höflich, findest du nicht?
DrAlberT
3
Lee - Warum stimmen Sie nicht einfach dem zu, den Sie mögen? Abstimmungen sollten nur für sachlich falsche Informationen oder Themen außerhalb des Themas abgegeben werden.
MDMarra
1

head -n 1 sollte den Trick machen

brandstaetter
quelle
1
awk 'NR == 1' /etc/passwd
David Poblador i Garcia
quelle
1
Dadurch wird die gesamte Datei gescannt und anschließend die erste Zeile zurückgegeben, die für große Dateien ineffizient ist. read -r ist besser.
Richard