Das ist etwas, was nicht grepgeht. Der Name "grep" selbst ist ein Akronym für " global nach regulären Ausdrücken suchen und drucken", wie es der edBefehl g/re/ptut (für einen bestimmten regulären Ausdruck re).
edist ein interaktiver Zeileneditor aus dem Jahr 1969, der jedoch höchstwahrscheinlich heute auf Ihrem System installiert ist. Wir haben grepvon ed, und es kann als eine Abkürzung oder ein Alias für eine bestimmte Funktionalität von edund gesehen werden sed, die "stream- ed" ist, dh ein (nicht interaktiver) Stream-Editor.
Verwenden wir sedstattdessen:
$ sed -n '1p' file.txt
Die 1pZeichenfolge ist ein winziges sed"Skript", pdas die Zeile ausgibt ( ), die der angegebenen Adresse ( 1, der ersten Zeile) entspricht. Der Editierbefehl 1pwürde edübrigens (keine Überraschung) das Gleiche im Editor tun .
Das -nunterdrückt die Ausgabe von irgendetwas, das nicht explizit vom Skript gedruckt wird, so dass wir nur die erste Zeile der Datei erhalten file.txt.
Alternative:
$ sed '1q' file.txt
Dies druckt alle Zeilen der Datei, beendet ( q) jedoch in Zeile 1 (nach dem Drucken). Das ist genau gleichbedeutend mit head -n 1 file.txt.
Im POSIX-Standard heißt es (verallgemeinernd), dass head -n Nes ungefähr so ist wie sed 'Nq'"jede Zeile drucken, aber in der Zeile beenden N". Der Grund, headder überhaupt in den Standard aufgenommen wurde, lag in der Symmetrie mit tail(und in der Abwärtskompatibilität mit vorhandenen Unix-Implementierungen).
head -1 file.txtnicht funktionieren