Como usar a matriz no comando AWK

Como usar a matriz no comando AWK
Uma variável de matriz é usada para armazenar mais de um dados. É suportado pela maioria das linguagens de programação para armazenar vários dados. Uma matriz tem duas partes. Estes são chave e valor. A chave é usada para acessar a localização do valor. Uma matriz pode ser numérica e associativa. A matriz numérica suporta apenas o valor numérico como matriz de chave e associativa suporta o valor numérico e o índice como chave. Uma matriz associativa é suportada pelo comando AWK. Como você pode definir, acessar ou modificar a matriz associativa no comando AWK é mostrado neste tutorial usando vários exemplos.

Sintaxe:

ArrayName [key] = Valor

Um nome deve declarar para a variável da matriz. ArrayName é o nome da matriz aqui. Cada array tem que usar o terceiro suporte para definir o chave ou índice e será qualquer valor de string para a matriz associativa. Valor pode ser qualquer personagem, número ou string que seja armazenado no índice específico da matriz.

Exemplo 1: Definindo e lendo a matriz unidimensional em Awk

Uma matriz unidimensional pode armazenar uma única lista de dados de coluna. Este tipo de matriz contém uma única chave e valor para cada elemento da matriz. Esta matriz pode ser usada no comando AWK, como outras linguagens de programação. Neste exemplo, uma matriz nomeada livro é declarado com três elementos e o loop é usado para ler e imprimir cada elemento. Execute o seguinte comando do terminal.

$ echo | awk 'BEGIN book ["html"] = "HTML Pocket Guide 2010";
livro ["js"] = "javascript eficaz";
Livro ["CSS"] = "Aprendendo web design";
Final para (i no livro) impressão "The Book of", i "é", livro [i]; '

Saída:

Exemplo 2: Definindo e lendo Array Bidimensional em Awk

Uma matriz bidimensional é usada para armazenar a lista de dados tabulares que contém um número fixo de linhas e colunas. A matriz bidimensional denominada estudantes é declarada neste exemplo que contém três elementos. Aqui, o ID e o nome do aluno são usados ​​como valores -chave da matriz. Como o exemplo anterior, o loop for-in é usado no script AWK para imprimir os valores da matriz. Execute o seguinte script do terminal.

$ echo | Awk 'Begin
alunos ["87462, mohammed ali"] = 87;
alunos ["98376, Sakib al Hasan"] = 99;
alunos ["79937, Musfikur Rahman"] = 88;
imprimir "(id, nome) => marcas";

Final para (i em estudantes) print "(", i, ") =>", estudantes [i]; '

Saída:

Exemplo 3: Excluindo o elemento de matriz

Qualquer valor da matriz pode ser excluído com base no valor -chave. Aqui, livro Array com três elementos é definido no início do script. Em seguida, o valor da chave Html é excluído usando excluir comando. O valor do elemento de Html A chave é impressa antes e depois do excluir comando. Execute o seguinte comando para verificar a saída.

$ echo | awk 'BEGIN book ["html"] = "HTML Pocket Guide 2010";
livro ["js"] = "javascript eficaz";
livro ["CSS"] = "Aprendendo web design";
imprimir "Antes excluir -", livro ["html"];
excluir livro ["html"];
Imprima "\ Nafter delete -", livro ["html"]; '

Saída:

A saída mostra que o valor de Html o índice está vazio após a execução excluir comando.

Exemplo-4: Leitura de Bash Array em Awk

Nos exemplos anteriores, a matriz é declarada no comando AWK e iterada pelo loop for-in. Mas você pode ler qualquer matriz Bash by Awk Script. Neste exemplo, uma matriz Bash nomeada Lang é declarado no primeiro comando. No segundo comando, os valores da matriz Bash são passados ​​para o comando AWK que armazena todos os elementos em uma matriz AWK denominada Awkarray. Os valores da matriz Awkarray são impressos usando o loop. Execute o seguinte comando do terminal para verificar a saída.

$ lang = ("php" "asp" "jsp" "c#" "c ++")
$ printf '%s \ n' "$ lang [@]" | awk 'awkarray [nr] = $ 1 end para
(I In Awkarray) Imprimo o Awkarray [i], "\ n"; '

Exemplo 5: lendo o conteúdo do arquivo em uma matriz AWK

O conteúdo de qualquer arquivo pode ser lido usando a matriz AWK. Crie um arquivo de texto chamado pássaro.TXT com o conteúdo abaixo.

pássaro.TXT

Coquetel
Codorna
Parrot cinza
Baazigar

O seguinte script AWK é usado para ler o conteúdo de pássaro.TXT Arquive e armazene os valores na matriz, Awkarray. para o loop é usado para analisar a matriz e imprimir os valores no terminal. Execute o seguinte script do terminal.

$ awk 'awkarray [contador ++] = $ 1; End for (n = 0; nimprimir awkarray [n], "\ n"; ' pássaro.TXT

Saída:

O script imprime o conteúdo de pássaro.TXT.

Exemplo 6: Removendo entradas duplicadas de um arquivo

O script AWK pode ser usado para remover dados duplicados de qualquer arquivo de texto. Crie um arquivo de texto chamado frutas.TXT com o seguinte conteúdo. Existem dois dados duplicados no arquivo. Estes são Maçã e Laranja.

frutas.TXT

Maçã
Laranja
Uva
Maçã
Banana
Laranja
Goiaba

O script AWK a seguir lerá todas as linhas do arquivo de texto, frutas.TXT e verifique se a linha atual existe ou não na matriz, arr. Se a linha existir na matriz, ela não armazenará a linha na matriz e não imprimirá o valor no terminal. Portanto, o script armazenará apenas as linhas exclusivas do arquivo para a matriz e imprimirá. Execute os comandos do terminal.

$ fruits de gato.TXT
$ awk '!($ 0 em arr) print arr [$ 0], $ 0; 'frutas.TXT

Saída:

O primeiro imprimirá o conteúdo do arquivo, frutas.txt e o segundo comando imprimirão o conteúdo das frutas.txt depois de omitir linhas duplicadas do arquivo.

Conclusão:

Este tutorial mostra os vários usos da matriz no script AWK usando diferentes exemplos com explicação. Bash Array e qualquer conteúdo do arquivo de texto também podem ser acessados ​​usando a matriz AWK. Se você é novo na programação AWK, este tutorial ajudará você a aprender os usos da matriz AWK do Basic e você poderá usar o Script Awk.