Come passare variabili di shell a AWK

November 15

Come passare variabili di shell a AWK


AWK è un estrazione dei dati Unix e l'utilità di segnalazione con un proprio linguaggio di scripting che effettua la manipolazione e la trasformazione di dati testuali e uscite report formattati; l'input viene da file o dati di input standard. AWK è uno strumento utile per fornire ulteriore filtraggio dei dati e la manipolazione in una pipeline Unix. AWK avviene generalmente in ingresso dalla linea di comando di shell, ma occasionalmente variabili passate in uno script può essere utilizzato dal programma di utilità per svolgere le sue azioni. AWK è utile per la trasformazione dei dati passati in dalla shell Unix.

istruzione

1 Creare uno script di shell chiamato "awkparam.sh" e renderlo eseguibile nella riga di comando digitando:

awkparam.sh; chmod + x awkparam.sh

Questo crea un file di script vuoto nella directory corrente con i permessi eseguibili.

2 Modificare e salvare lo script di shell con un editor di testo yout e inserire questi comandi in esso:

var = test

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

Questo richiederà il valore della variabile "var" e l'uscita il valore, in questo caso il valore è "test". Eseguire lo script dalla riga di comando con:

./awkparam.sh

Questo genera il valore della variabile memorizzata, "test".

3 Modificare lo script awkparam.sh di nuovo, ma questa volta inserire i seguenti comandi e salvarlo:

var = $ 1

var2 = $ 2

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

Ora eseguire il comando dalla riga di comando con:

test2 prova ./awkparam.sh

Ciò produrrà il valore:

test2 prova

allo schermo. In questo caso Awk ha preso le variabili salvate, "var" e "var2" e trasformata in una propria rappresentazione interna utilizzando i parametri di stampa di $ 1 e $ 2.

Consigli e avvertenze

  • Distinguere tra i parametri ($ 1, $ 2, ecc) passati a uno script di shell dai valori $ 1, $ 2 nella riga di comando di AWK tramite il comando "stampa". Essi hanno significati diversi, in che $ 1, $ 2 passato in uno script di shell sono parametri esterni, ma in un comando di AWK "stampa" si riferiscono alla posizione dei campi passati ad esso, come ad esempio "test2 test". Esperimento per te per vedere come questi funzionano in pratica.