Como usar a variável no comando AWK

Como usar a variável no comando AWK
Variáveis ​​são usadas para armazenar qualquer valor temporário em qualquer linguagem de programação. Definir a variável no comando AWK é semelhante à linguagem de script de bash e funciona como Bash quando a variável shell é usada com uma única cotação e cotação dupla. O comando AWK tem muitas variáveis ​​internas para vários fins. Como as variáveis ​​definidas pelo usuário, embutidas e de shell podem ser usadas no comando AWK é mostrado neste tutorial usando diferentes exemplos.

Example -1: Definindo e imprimindo variável

O comando 'awk' usa a opção '-v' para definir a variável. Neste exemplo, o myvar A variável é definida no comando 'awk' para armazenar o valor, “Variável AWK” que é impresso mais tarde. Execute o seguinte comando do terminal para verificar a saída.

$ echo | awk -v myvar = 'variável awk' 'print myvar'

Saída:

Exemplo - 2: Usando a variável shell no AWK com uma única cotação e cotação dupla

O exemplo mostra como a variável shell pode ser usada comando 'awk'. Aqui, uma variável de shell, myvar é declarado com o valor, “Dica do Linux” No primeiro comando. O símbolo '$' é usado com um nome de variável de shell para ler o valor. O segundo comando lê a variável, $ myval com uma única citação (') e o terceiro comando lê a variável $ myvar com citação dupla (“) na declaração' awk '.

$ myvar = "linux dica"
$ echo | awk -v awkvar = '$ myvar' 'imprima awkvar; '
$ echo | awk -v awkvar = "$ myvar" 'imprima awkvar; '

Saída:

É mostrado na saída que o valor de $ myvar não pode ser lido quando está fechado com uma única citação (') e a saída é $ myvar. O valor de $ myvar é impresso quando está fechado com uma cotação dupla (“).

Exemplo - 3: Lendo a variável argc em Awk

A variável argc é usada para contar o número total de argumentos da linha de comando. Três variáveis ​​de argumentos da linha de comando (T1, T2, T3) são passadas no seguinte script AWK. Aqui, o número total de argumentos com o script é 4. Execute o script do terminal.

$ AWK 'BEGIN PRIM "TOTAL AGGUMENTES =", ARGC' T1 T2 T3

Saída:

A saída a seguir aparecerá após a execução do script.

Exemplo - 4: Lendo o conteúdo do arquivo por variáveis ​​de argumento

Crie um arquivo de texto chamado cliente.TXT com o seguinte conteúdo para praticar este exemplo. Aqui, todos os campos do arquivo são separados por solteiro aba espaço.

cliente.TXT

Nome de identificação
103847 John Micheal
209485 Watson
974732 Mira Hossain

O comando AWK pode ler cada campo de qualquer arquivo de texto por variáveis ​​de argumento. Existem dois campos em cliente.TXT arquivo. Estes são id e nome. O script a seguir imprimirá esses dois campos por variáveis ​​de argumento, $ 1 e $ 2 separando dois aba espaços. Execute o script do terminal.

$ CAT CLIENTE.TXT
$ CAT CLIENTE.txt | awk 'print $ 1 "\ t \ t" $ 2;'

Saída:

A saída a seguir aparecerá após a execução dos comandos acima.

Exemplo- 5: Usando variável interna, FS e opção de separador de campo com comando AWK

A variável FS é usada no comando AWK como um separador de campo. O espaço é usado como um valor padrão do FS. O seguinte comando lerá o arquivo cliente.TXT Usando o espaço como separador de campo e imprima o conteúdo do arquivo. Execute o comando do terminal.

$ AWK FS Cliente.TXT

Saída:

A saída a seguir aparecerá após a execução do script.

O comando AWK pode usar outros caracteres como separador de campo usando a opção '-f'. Crie um arquivo de texto chamado produtos.TXT com o seguinte conteúdo em que ':' é usado como um separador de campo.

produtos.TXT

101: Bolo: $ 30
102: lápis: $ 5
103: sabão: $ 3
104: Shampoo: $ 10

Existem três campos no arquivo, produtos.TXT que contém ID do produto, nome e preço. O comando AWK a seguir imprimirá apenas o segundo campo de cada linha. Execute os comandos do terminal.

$ CAT Product.TXT
$ awk -f ':' 'print $ 2' produto.TXT

Saída:

Aqui, o primeiro comando imprimiu o conteúdo de produtos.TXT e o segundo comando imprimiu apenas o segundo campo do arquivo.

Exemplo - 6: Usando variável interna, nr com comando AWK

A variável NR é usada no comando AWK para contar o número total de registros ou linhas de um arquivo. Crie um arquivo de texto chamado estudante.TXT Para testar a função desta variável.

estudante.TXT

Semestre em lote
João 20 3
Mira 22 1
Ella 18
Charle 15 8

O script AWK a seguir imprimirá as três primeiras linhas de produtos.TXT arquivo. Aqui, uma condição é adicionada usando a variável NR. O comando imprimirá as linhas onde o valor da NR é menor que 4. Execute o script do terminal.

Saída:

A saída a seguir aparecerá após a execução do script.

$ CAT Student.txt | Awk 'nr < 4'

Exemplo - 7: Usando variável interna, NF com comando AWK

A variável NF é usada no comando AWK para contar o número total de campos em cada linha de um arquivo. O seguinte script AWK é aplicado para o arquivo, estudante.TXT que é criado no exemplo anterior. O script imprimirá essas linhas de estudante.TXT Arquivo onde os campos totais são inferiores a 3. Execute o comando do terminal.

$ CAT Student.txt | Awk 'nf < 3'

Saída:

Existe apenas uma linha no arquivo em que o número total de campos é menor que 3 que é impresso como saída.

Exemplo - 8: Usando variável interna, OFS com comando AWK

O OFS variável é usado no comando AWK para adicionar separador de campo de saída na saída. produtos.TXT O arquivo é usado neste exemplo para mostrar o uso de variável de OFS. ':' é usado como separador de campo no produto.arquivo txt. O script AWK a seguir usado '->' AS OFS VALE e, o segundo e o terceiro campos do arquivo serão impressos adicionando este separador. Execute os comandos do terminal.

$ CAT Product.TXT
$ awk -f ':' 'begin ofs = " ->"; print $ 2, $ 3;' produto.TXT

Saída:

A saída a seguir imprimirá após a execução dos comandos.

Conclusão:

Os usos mais comuns das variáveis ​​awk são tentados explicar neste tutorial. Esperança, o leitor poderá usar variáveis ​​AWK corretamente no script depois de praticar este tutorial.