Este capítulo descreve várias útil AWK comandos e seus exemplos apropriados. Considere um arquivo de texto marcas.txt a ser processado com o seguinte conteúdo –
1) Amit Physics 802) Rahul Maths 903) Shyam Biology 874) Kedar English 855) Hari History 89
imprimir coluna ou campo
pode indicar ao AWK para imprimir apenas algumas colunas do campo de entrada., O exemplo seguinte demonstra este −
exemplo
$ awk '{print $3 "\t" $4}' marks.txt
ao executar este código, obtém o seguinte resultado –
saída
Physics 80Maths 90Biology 87English 85History 89
nas marcas de ficheiros.txt, a terceira coluna contém o nome do assunto e a quarta coluna contém as marcas obtidas num determinado assunto. Vamos imprimir estas duas colunas usando o comando AWK print. No exemplo acima, $ 3 e $4 representam o terceiro e o quarto campos, respectivamente, do registro de entrada.
imprimindo todas as linhas
por omissão, o AWK imprime todas as linhas que correspondem ao padrão.,
Exemplo
$ awk '/a/ {print $0}' marks.txt
Em executar esse código, você pode obter o seguinte resultado −
de Saída
2) Rahul Maths 903) Shyam Biology 874) Kedar English 855) Hari History 89
No exemplo acima, estamos buscando formar um padrão. Quando uma correspondência de padrões tiver êxito, ele executa um comando do corpo de bloco. Na ausência de um bloco de corpo − ação padrão é tomada que é imprimir o registro. Assim, o seguinte comando produz o mesmo resultado −
Exemplo
$ awk '/a/' marks.txt
Impressão de Colunas por Padrão
Quando um padrão de correspondência é bem sucedida, AWK imprime todo o registro por padrão., Mas você pode instruir AWK a imprimir apenas certos campos. Por exemplo, o seguinte exemplo imprime o terceiro e o quarto campo quando um padrão corresponde com sucesso.
Exemplo
$ awk '/a/ {print $3 "\t" $4}' marks.txt
Em executar esse código, você pode obter o seguinte resultado −
de Saída
Maths 90Biology 87English 85History 89
a Impressão de Colunas em Qualquer Ordem
Você pode imprimir colunas em qualquer ordem. Por exemplo, o exemplo seguinte imprime a quarta coluna seguida da terceira coluna.,
Exemplo
$ awk '/a/ {print $4 "\t" $3}' marks.txt
Em executar o código acima, você pode obter o seguinte resultado −
de Saída
90 Maths87 Biology85 English89 History
Contagem e Impressão de Correspondência por Padrão
Vamos ver um exemplo onde você pode contagem e impressão do número de linhas para que uma correspondência de padrões bem sucedidos.
Exemplo
$ awk '/a/{++cnt} END {print "Count = ", cnt}' marks.txt
Em executar esse código, você pode obter o seguinte resultado −
de Saída
Count = 4
neste exemplo, podemos aumentar o valor do contador quando um padrão de correspondência é bem sucedida e nós imprimir este valor no FINAL do bloco., Note que ao contrário de outras linguagens de programação, não há necessidade de declarar uma variável antes de usá-la.
Linhas de Impressão, com Mais de 18 Caracteres
Vamos imprimir apenas as linhas que contenham mais de 18 caracteres.
Exemplo
$ awk 'length($0) > 18' marks.txt
Em executar esse código, você pode obter o seguinte resultado −
de Saída
3) Shyam Biology 874) Kedar English 85
AWK fornece um built-in função de comprimento que retorna o comprimento da string. $0 variável armazena toda a linha e na ausência de um bloco de corpo, a ação padrão é tomada, ou seja, a ação de impressão., Assim, se uma linha tem mais de 18 caracteres, então a comparação resulta verdadeira e a linha é impressa.