Nous pouvons considérer Awk une amélioration par rapport à SED car il offre plus de fonctionnalités, y compris des tableaux, des variables, des boucles et de bonnes anciennes expressions régulières.
Dans ce tutoriel, nous discuterons rapidement de la façon dont vous pouvez utiliser plusieurs délimiteurs dans une commande awk. Avant de continuer, veuillez noter que ce tutoriel n'est pas un guide pour débutant à AWK, et je ne l'avais pas non plus compris comme tel.
Veuillez vous référer à la ressource suivante si vous avez besoin d'un guide pour débutant à AWK.
https: // linuxhint.com / use_awk_linux /
Que sont les délimiteurs?
Je suis sûr que, puisque vous prenez le temps de lire cet article, vous connaissez le concept de délimiteurs. Mais cela ne fait pas de mal de récapituler, alors faisons cela maintenant:
En un mot, les délimiteurs sont une séquence de caractères utilisés pour séparer les valeurs de texte de chaîne. Il existe différents types communs de délimiteurs qui incluent:
Nom | Symbole |
---|---|
Virgule | , |
Côlon | : |
Semi-colon | ; |
Période | . |
Tuyau | | |
Barre de barre | \ |
Sabrer | / / |
Parenthèse | () |
Accolades | |
Crochets | [] |
Espace |
Séparateur de champ regex awk
Le séparateur de champ awk (FS) est utilisé pour spécifier et contrôler comment Awk divisait un enregistrement dans divers champs. De plus, il peut accepter un seul caractère d'une expression régulière. Une fois que vous avez spécifié une expression régulière comme valeur pour le FS, AWK scanne les valeurs d'entrée pour la séquence de caractères définie dans l'expression régulière.
Nous allons implémenter la fonctionnalité de AWK pour accepter les valeurs d'expression régulières dans le séparateur de champ pour connecter plusieurs délimiteurs.
Utiliser plusieurs délimiteurs
Pour illustrer comment séparer à l'aide de plusieurs délimiteurs dans AWK, je vais utiliser un exemple simple pour vous montrer comment utiliser cette fonctionnalité.
Supposons que vous ayez un fichier avec des données comme suit:
/ org / gnone / bureau / interface: établi: avril 16 16.59.09 | org.gnome.Terminal.bureau [1099]
Dans le fichier ci-dessus, nous souhaitons obtenir la sortie similaire à celle ci-dessous:
org / gnome / bureau / interface établie 17 avril 16:59.09 Org.gnome.Terminal.bureau [1099]
Pour séparer le fichier à l'aide des différents délimiteurs dans ce cas, un côlon, un espace et un tuyau-we peut utiliser une commande comme indiqué ci-dessous:
awk -f '[: |]' 'print $ 1, $ 2, $ 3, $ 4, $ 5, $ $' utilisateur.enregistrer
La commande ci-dessus sortira les informations comme indiqué ci-dessous:
Comme vous pouvez le voir, vous pouvez combiner plus d'un délimiteur dans le séparateur de champ awk pour obtenir des informations spécifiques.
Conclusion
Dans ce guide rapide, nous avons discuté de l'utilisation de AWK pour séparer plusieurs délimiteurs dans un fichier d'entrée.
Pour obtenir plus d'informations sur la façon d'élargir les fonctionnalités de Awk FS, considérez les ressources suivantes:
https: // www.gnou.org / logiciel / gawk / manual / html_node / regexp-field-splert.html
https: // www.gnou.org / logiciel / gawk / manual / html_node / field-separators.html