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

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

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

Créer un fichier texte

Pour suivre ce tutoriel, créez un fichier texte délimité par l'onglet nommé liste de livres.SMS avec le contenu suivant. Ce fichier contient une liste de livres avec leurs auteurs correspondants. Dans ce tutoriel, nous vous montrerons 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 canon
Booth de la ligne de commande Linux Travis
Bash en pas faciles Mike McGrath
Unix en étapes faciles Mike McGrath

Exemple 1: sautez la première ligne d'un fichier à l'aide de NR et de 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.

$ Cat Booklist.SMS
$ awk '(nr> 1)' list list.SMS

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

Exemple 2: sautez 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'> '.

$ Cat Booklist.SMS
$ awk 'nr!= 1 'LIVISE.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: sautez la première ligne d'un fichier en utilisant une instruction conditionnelle

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

$ Cat Booklist.SMS
$ awk 'if (nr!= 1) print 'Looklist.SMS

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

Exemple 4: Imprimez les noms du livre du fichier mais sautez la première ligne

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

$ Cat Booklist.SMS
$ awk -f "\ t" 'print $ 1' Booklist.txt | awk 'nr!= 1 print '

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 basées sur \ t, et printf imprimera les première et deuxième colonnes lorsque la valeur NR est d'au moins 2.

$ Cat Booklist.SMS
$ awk -f '\ t' 'nr> = 2 printf "% 30s% 20s \ n", $ 1, $ 2'.SMS

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

Exemple 6: Imprimez les noms du livre après avoir sauté la première ligne à l'aide de NR et NF

La commande 'awk' suivante utilise l'option '-f' et NR et NF pour imprimer les noms du livre après avoir sauté le premier livre. L'option '-f' est utilisée pour séparer le contenu de la base de fichiers sur \ T. NR est utilisé pour sauter la première ligne, et NF est utilisé pour imprimer la première colonne uniquement.

$ Cat Booklist.SMS
$ awk -f '\ t' 'nr> 1 && nf = 1' listlist.SMS

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

Exemple 7: Imprimez les noms des 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 d'auteur 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 la première ligne au lieu du contenu de la première ligne. Les noms de l'auteur du fichier seront imprimés pour les autres valeurs de NR.

$ Cat Booklist.SMS
$ awk -f '\ t' 'if (nr == 1) printf "\ nauuthor name: \ n \ n"; else printf "% s \ n", 2 $ 'Booklist.SMS

La sortie suivante sera produite après l'exécution des commandes ci-dessus. La sortie montre 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 le montre ce tutoriel, il existe différentes façons de sauter la première ligne d'un fichier en utilisant la commande 'awk'. Notablement, la variable NR de la commande 'awk' peut être utilisée pour sauter la première ligne de n'importe quel fichier.