Comment passer des variables Shell pour AWK

September 28

Comment passer des variables Shell pour AWK


AWK est une extraction de données Unix et l'utilité des rapports avec sa propre langage de script qui effectue la manipulation et la transformation des données textuelles et les sorties des rapports formatés; l'entrée provient de fichiers ou de données d'entrée standard. AWK est un outil utile pour fournir un filtrage supplémentaire des données et de la manutention dans un pipeline Unix. AWK prend généralement l'entrée de la ligne de commande shell, mais de temps en temps variables passées dans un script peut être utilisé par l'utilitaire pour effectuer ses actions. AWK est utile pour transformer les données transmises depuis le shell Unix.

Instructions

1 Créer un script shell appelé "awkparam.sh" et le rendre exécutable dans la ligne de commande en tapant:

awkparam.sh; chmod + x awkparam.sh

Cela crée un fichier de script vide dans le répertoire courant avec les autorisations exécutables.

2 Modifiez et enregistrez le script shell avec yout éditeur de texte favori et placez ces commandes en elle:

var = test

echo $ var | awk '{print $ var}'

Cela prendra la valeur de la variable "var" et la sortie de la valeur, dans ce cas, la valeur est "test". Exécutez le script à partir de la ligne de commande avec:

./awkparam.sh

Ceci produit la valeur de la variable stockée, "test".

3 Modifier le script awkparam.sh à nouveau, mais cette fois entrez les commandes suivantes et enregistrez-le:

var = 1 $

var2 = $ 2

echo "$ var $ var2" | awk '{print $ 1 $ 2}'

Maintenant, exécutez la commande à partir de la ligne de commande avec:

test test2 ./awkparam.sh

Ceci affichera la valeur:

test test2

à l'écran. Dans ce cas, Awk a pris les variables enregistrées, "var" et "var2" et de les convertir en sa propre représentation interne en utilisant les paramètres d'impression de 1 $ et 2 $.

Conseils et avertissements

  • Distinguer entre les paramètres ($ 1, $ 2, etc.) passèrent à un script shell à partir des valeurs $ 1, $ 2 dans la ligne de commande de AWK en utilisant la commande "print". Ils ont des significations différentes, en ce que $ 1, $ 2 passé dans un script shell sont des paramètres externes, mais dans une commande "print" AWK ils se réfèrent à la position des champs qui lui sont transmis, tels que "test2 test." Expérience pour vous-même pour voir comment ceux-ci fonctionnent dans la pratique.

          

Post a comment: