Oui, c'est une façon d'obtenir la première ligne de sortie d'une commande.
Si la commande affiche quelque chose sur l'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 :
utility 2>&1 | head -n 1
Il existe également de nombreuses autres façons de capturer la première ligne, y compris sed 1q
(quitter après la première ligne), sed -n 1p
(n'imprimez que la première ligne, mais lisez tout), awk 'FNR == 1'
(n'imprimez que la première ligne, mais encore une fois, lisez tout) etc.
J'utiliserais :
awk 'FNR <= 1' file_*.txt
Comme le souligne @Kusalananda, il existe de nombreuses façons de capturer la première ligne de la ligne de commande, mais en utilisant le head -n 1
peut ne pas être la meilleure option lors de l'utilisation de caractères génériques car il imprimera des informations supplémentaires. Changer 'FNR == i'
à '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 head
les jokers impriment le nom du fichier :
head -1 file_*.txt
==> file_1.csv <==
hello
...
==> file_n.csv <==
bye