GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ruft die erste Zeile der Ausgabe eines Shell-Befehls ab

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

Linux
  1. Befehlszeilenaliase in der Linux-Shell

  2. Ausgabe des Befehls in Shell-Variable speichern?

  3. Wie werden Ssh-Remote-Befehlszeilenargumente analysiert?

  4. Holen Sie sich die ersten 5 Zeichen aus jeder Zeile im Shell-Skript

  5. Zeilenumbruch an die Befehlsausgabe anhängen

So leiten Sie die Shell-Befehlsausgabe um

Rufen Sie Linux-System- und Hardwaredetails in der Befehlszeile ab

Wie liest man Befehlszeilenargumente in Shell-Skripten?

Auslassen der ersten Zeile in jeder Linux-Befehlsausgabe

Wie werden Zeilenumbrüche beibehalten, wenn die Befehlsausgabe in einer Variablen gespeichert wird?

Wie erhalte ich meine IP-Adresse über die Befehlszeile?