GNU/Linux >> Tutoriels Linux >  >> Linux

Obtenir la première ligne de la sortie d'une commande shell

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

Linux
  1. Omettre la première ligne de toute sortie de commande Linux

  2. obtenir les 5 premiers caractères de chaque ligne dans le script shell

  3. Ajouter un saut de ligne à la sortie de la commande

  4. Ligne de commande :Extraire la sous-chaîne de la sortie

  5. Rediriger la sortie de la commande dans docker

Comment rediriger la sortie de la commande shell

Obtenir les détails du système Linux et du matériel sur la ligne de commande

Comment lire les arguments de ligne de commande dans les scripts shell ?

Paramètres de ligne de commande dans les scripts shell

Comment conserver les sauts de ligne lors du stockage de la sortie de la commande dans une variable ?

Comment puis-je obtenir mon adresse IP à partir de la ligne de commande ?