Ja, das ist eine Möglichkeit, die erste Ausgabezeile eines Befehls zu erhalten.
Wenn der Befehl etwas an den Standardfehler ausgibt, das Sie auf die gleiche Weise erfassen möchten, müssen Sie den Standardfehler des Befehls an den Standardausgabestrom umleiten:
utility 2>&1 | head -n 1
Es gibt viele andere Möglichkeiten, die erste Zeile zu erfassen, einschließlich sed 1q
(Beenden nach der ersten Zeile), sed -n 1p
(nur erste Zeile drucken, aber alles lesen), awk 'FNR == 1'
(nur erste Zeile drucken, aber nochmal alles lesen) etc.
Ich würde verwenden:
awk 'FNR <= 1' file_*.txt
Wie @Kusalananda betont, gibt es viele Möglichkeiten, die erste Zeile in der Befehlszeile zu erfassen, aber mit dem head -n 1
ist möglicherweise nicht die beste Option, wenn Platzhalter verwendet werden, da zusätzliche Informationen gedruckt werden. Ändern von 'FNR == i'
bis 'FNR <= i'
ermöglicht es, die ersten i Zeilen zu erhalten.
Wenn Sie beispielsweise n Dateien namens file_1.txt haben, ... file_n.txt:
awk 'FNR <= 1' file_*.txt
hello
...
bye
Aber mit head
Wildcards geben den Namen der Datei aus:
head -1 file_*.txt
==> file_1.csv <==
hello
...
==> file_n.csv <==
bye