Awk

Comment sauter la première ligne d'un fichier en utilisant 'awk'

Comment sauter la première ligne d'un fichier en utilisant 'awk'

Il existe différentes utilisations de la commande 'awk' sous Linux. Par exemple, il peut être utilisé pour imprimer le contenu d'un fichier texte. La première ligne de nombreux fichiers texte contient l'en-tête du fichier, et parfois, la première ligne doit être ignorée lors de l'impression du contenu du fichier. Dans ce tutoriel, nous allons vous montrer comment accomplir cette tâche en utilisant la commande 'awk'.

Créer un fichier texte

Pour suivre ce didacticiel, créez un fichier texte délimité par des tabulations nommé liste de livres.SMS avec le contenu suivant. Ce fichier contient une liste de livres avec leurs auteurs correspondants. Dans ce tutoriel, nous allons vous montrer comment imprimer différentes parties de ce fichier après avoir sauté la première ligne.

Cybersécurité avec bash Paul Troncone, Carl Albing
Ligne de commande Kung Fu Jason Cannon
Ligne de commande Linux Travis Booth
Bash en quelques étapes simples Mike McGrath
Unix en quelques étapes simples Mike McGrath

Exemple 1 : Sauter la première ligne d'un fichier en utilisant NR et l'opérateur '>'

La variable NR indique le nombre d'enregistrements dans un fichier. La commande 'awk' suivante utilise la variable NR pour sauter la première ligne d'un fichier. La valeur de NR est 1 pour la première ligne. La commande suivante imprimera les lignes pour lesquelles la valeur NR est supérieure à 1.

$ liste de livres de chat.SMS
$ awk '(NR>1)' liste de livres.SMS

La sortie suivante sera produite après l'exécution des commandes ci-dessus. La sortie inclut toutes les lignes autres que la première ligne du fichier.

Exemple 2 : sauter la première ligne en utilisant NR et le '!=' opérateur

La commande 'awk' suivante est similaire à celle de l'exemple précédent. Cependant, le '!=' l'opérateur de comparaison est utilisé ici au lieu de '>'.

$ liste de livres de chat.SMS
$ awk 'NR!=1' liste de livres.SMS

La sortie suivante sera produite après l'exécution des commandes ci-dessus. La sortie affiche toutes les lignes autres que la première ligne du fichier.

Exemple 3 : ignorer la première ligne d'un fichier à l'aide d'une instruction conditionnelle

La commande 'awk' suivante imprimera les lignes du fichier si l'instruction if est vraie. Ici, l'instruction if ne sera vraie que lorsque la valeur NR n'est pas égale à 1.

$ liste de livres de chat.SMS
$ awk 'if (NR!=1) print' liste de livres.SMS

La sortie suivante sera produite après l'exécution des commandes ci-dessus. La sortie comprend toutes les lignes sauf la première ligne du fichier.

Exemple 4 : imprimez les noms des livres à partir du fichier mais sautez la première ligne

Deux commandes 'awk' sont utilisées dans cet exemple pour imprimer tous les noms de livres sauf le premier. La commande 'awk' lira la première colonne du fichier en fonction du séparateur de champ (\t) et enverra la sortie à la deuxième commande 'awk'. La deuxième commande 'awk' imprimera la sortie souhaitée.

$ liste de livres de chat.SMS
$ awk -F "\t" 'print $1' liste de livres.txt | awk 'NR!=1 imprimer'

La sortie suivante sera produite après l'exécution des commandes ci-dessus. La sortie affiche tous les noms de livres à l'exception de celui du premier livre.

Exemple 5 : formater le contenu du fichier après avoir sauté la première ligne

L'option '-F', la variable NR et la fonction printf sont utilisées dans la commande 'awk' suivante pour générer une sortie formatée après avoir sauté la première ligne. La commande divisera le contenu du fichier en colonnes en fonction de \t, et printf imprimera les première et deuxième colonnes lorsque la valeur NR est d'au moins 2.

$ liste de livres de chat.SMS
$ awk -F '\t' 'NR>=2 printf "%30s %20s\n", $1, $2' liste de livres.SMS

La sortie suivante sera produite après l'exécution des commandes ci-dessus. La sortie affiche le contenu formaté du fichier, à l'exclusion de la première ligne du fichier.

Exemple 6 : Imprimez les noms des livres après avoir sauté la première ligne en utilisant NR et NF

La commande 'awk' suivante utilise l'option '-F' et NR et NF pour imprimer les noms des livres après avoir sauté le premier livre. L'option '-F' est utilisée pour séparer le contenu du fichier basé sur \t. NR est utilisé pour sauter la première ligne, et NF est utilisé pour imprimer la première colonne uniquement.

$ liste de livres de chat.SMS
$ awk -F '\t' 'NR>1 && NF=1' liste de livres.SMS

La sortie suivante sera produite après l'exécution des commandes ci-dessus. La sortie inclut tous les noms de livre dans le fichier à l'exception de celui du premier livre.

Exemple 7 : Imprimez les noms d'auteurs formatés après avoir sauté la première ligne

La commande 'awk' suivante utilise l'option '-F' et une instruction conditionnelle pour imprimer les noms des auteurs après avoir sauté la première ligne. Ici, la valeur NR est utilisée dans la condition if. Ici, "Nom de l'auteur :\n\n" sera imprimé comme première ligne au lieu du contenu de la première ligne. Les noms d'auteur du fichier seront imprimés pour les autres valeurs de NR.

$ liste de livres de chat.SMS
$ awk -F '\t' ' if (NR==1) printf "\nNom de l'auteur :\n\n" ; else  printf "%s\n", $2' liste de livres.SMS

La sortie suivante sera produite après l'exécution des commandes ci-dessus. La sortie affiche le texte « Nom de l'auteur : » avec une nouvelle ligne, et tous les noms d'auteur sont imprimés sauf le premier.

Conclusion

La première ligne d'un fichier peut être ignorée en utilisant diverses commandes Linux. Comme indiqué dans ce didacticiel, il existe différentes manières de sauter la première ligne d'un fichier en utilisant la commande 'awk'. Notamment, la variable NR de la commande 'awk' peut être utilisée pour sauter la première ligne de n'importe quel fichier.

Meilleurs jeux de ligne de commande pour Linux
La ligne de commande n'est pas seulement votre plus grand allié lorsque vous utilisez Linux, elle peut également être une source de divertissement car...
Meilleures applications de mappage de manette de jeu pour Linux
Si vous aimez jouer à des jeux sur Linux avec une manette de jeu au lieu d'un système de saisie clavier et souris typique, il existe des applications ...
Outils utiles pour les joueurs Linux
Si vous aimez jouer à des jeux sur Linux, il est probable que vous ayez utilisé des applications et des utilitaires comme Wine, Lutris et OBS Studio p...