Beim Versuch, die Versionsnummer von zu lesen vim
, erhalte ich viele zusätzliche Zeilen, die ich ignorieren muss. Ich habe versucht, das Handbuch von zu lesen head
und habe den folgenden Befehl ausprobiert:
vim --version | head -n 1
Ich möchte wissen, ob dies der richtige Ansatz ist.
vim --version 2>&1 | sed 1q
:)
Überprüfen Sie, ob Ihr Paket diese Informationenstderr
als @WilliamPursell ausgibt .Antworten:
Ja, das ist eine Möglichkeit, die erste Ausgabezeile eines Befehls abzurufen.
Wenn der Befehl einen Standardfehler ausgibt, den Sie auf dieselbe Weise erfassen möchten, müssen Sie den Standardfehler des Befehls in den Standardausgabestream umleiten:
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 wieder alles lesen) usw.quelle
Ich würde ... benutzen:
Wie @Kusalananda hervorhebt, gibt es viele Möglichkeiten, die erste Zeile in der Befehlszeile zu erfassen. Die Verwendung der
head -n 1
Option ist jedoch möglicherweise nicht die beste Option, wenn Platzhalter verwendet werden, da zusätzliche Informationen gedruckt werden. Durch Ändern'FNR == i'
auf'FNR <= i'
können die ersten i-Zeilen abgerufen werden.Wenn Sie beispielsweise n Dateien mit dem Namen file_1.txt haben, ... file_n.txt:
Bei
head
Platzhaltern wird jedoch der Name der Datei gedruckt:quelle
head -qn1 file_*.txt