En essayant de lire le numéro de version de vim
, j'obtiens beaucoup de lignes supplémentaires que je dois ignorer. J'ai essayé de lire le manuel head
et essayé la commande suivante:
vim --version | head -n 1
Je veux savoir si c'est la bonne approche?
vim --version 2>&1 | sed 1q
:)
Vérifiez si votre packagestderr
génère ces informations sous la forme @WilliamPursell.Réponses:
Oui, c'est une façon d'obtenir la première ligne de sortie d'une commande.
Si la commande renvoie une erreur standard que vous souhaitez capturer de la même manière, vous devez rediriger l'erreur standard de la commande vers le flux de sortie standard:
Il existe également de nombreuses autres façons de capturer la première ligne, notamment
sed 1q
(quitter après la première ligne),sed -n 1p
(imprimer uniquement la première ligne, mais tout lire),awk 'FNR == 1'
(imprimer uniquement la première ligne, mais encore une fois, tout lire) etc.la source
J'utiliserais:
awk 'FNR <= 1' file_*.txt
Comme @Kusalananda le souligne, il existe de nombreuses façons de capturer la première ligne en ligne de commande, mais l'utilisation de
head -n 1
peut ne pas être la meilleure option lors de l'utilisation de caractères génériques car elle imprimera des informations supplémentaires. Changer'FNR == i'
en'FNR <= i'
permet d'obtenir les i premières lignes.Par exemple, si vous avez n fichiers nommés file_1.txt, ... file_n.txt:
awk 'FNR <= 1' file_*.txt hello ... bye
Mais avec des
head
jokers, imprimez le nom du fichier:head -1 file_*.txt ==> file_1.csv <== hello ... ==> file_n.csv <== bye
la source
head -qn1 file_*.txt