Os 10 melhores exemplos de comando AWK incríveis

Os 10 melhores exemplos de comando AWK incríveis
O comando AWK é uma ferramenta poderosa para processar dados. Ele obtém dados de entrada, manipula e fornece resultados em saída padrão. Várias operações podem ser executadas em linhas e colunas de um arquivo.

Saber o essencial do comando "Awk" é muito importante quando se trata de processamento de dados com eficiência, e esta postagem cobre os principais recursos do comando "Awk". Vamos verificar a sintaxe primeiro:

$ awk [options] [arquivo]

Algumas das opções comumente usadas são fornecidas na tabela abaixo:

Opção Descrição
-F Para especificar um separador de arquivos
-f Especifique o arquivo que contém o script "Awk"
-v Para atribuir variável

Vamos dar uma olhada em alguns exemplos sobre o uso do comando "Awk" e, para demonstração, fiz um arquivo de texto pelo nome de TestFile.TXT:

Como imprimir uma coluna de um arquivo com o comando AWK?

O comando "Awk" pode ser usado para obter uma coluna específica do arquivo de texto. Para imprimir o conteúdo do uso de arquivos:

$ CAT TestFile.TXT

Agora, para imprimir a segunda coluna do arquivo, use:

$ awk 'print $ 2' testfile.TXT

Para imprimir mais de um campos, use o comando:

$ awk 'print $ 1, $ 2, $ 3' testFile.TXT

Se você não usar a vírgula "," a saída ficará sem espaços:

$ awk 'print $ 1 $ 2 $ 3' TestFile.TXT

Como usar a expressão regular com o comando AWK:

Para combinar com as cordas ou qualquer expressão, usamos slashes "//", por exemplo, se você quiser imprimir os nomes das pessoas que estudam "história", use:

$ awk '/ history/ print $ 2' testfile.TXT

A saída está mostrando claramente que apenas "Sam" e "Tommy" estão estudando o curso "História".

Como usar a expressão relacional com o comando "Awk":

Para corresponder ao conteúdo de um campo específico, a expressão relacional pode ser usada. Para corresponder a qualquer string ou expressão com um campo, indique o campo e use a comparação “~” Operador com o padrão, conforme apresentado no seguinte comando:

$ awk '$ 3 ~/ is/ print $ 2' testFile.TXT

A saída acima que exibe todos os campos na coluna 2 contra todos os campos que contém "é" na coluna 3.

E para obter a saída oposta do comando acima, use o “! ~ ”Operador:

$ awk '$ 3! ~/ is/ print $ 2 'testfile.TXT

Para comparação, também podemos usar operadores como maiores que “>” e menos que “<” and equal “=” as well:

$ awk '$ 4> 70 print $ 2' testFile.TXT

A saída imprimiu os nomes de pessoas que obtiveram marcas de mais de 70.

Como usar o padrão de intervalo com o comando AWK:

Um intervalo também pode ser usado para pesquisa; Basta usar a vírgula "", para separar o intervalo, conforme apresentado no comando abaixo mencionado:

$ awk '/joel/,/marlene/print $ 3' testfile.TXT

A saída mostra os assuntos do intervalo de "Joel" a "Marlene" da coluna 2. Podemos usar o sinal igual duplo "==" para definir um intervalo; Veja o exemplo abaixo:

$ awk '$ 4 == 80, $ 4 == 90 print $ 0' testFile.TXT

A saída exibe os nomes das pessoas da coluna 2 para a faixa de marcas “70 a 80” da coluna 4.

Como combinar o padrão usando o operador lógico:

O uso de operadores lógicos como ou "||" e "&&" permite que você combine padrões para pesquisa. Use o seguinte comando

$ awk '$ 4> 80 && $ 6> 0.4 Print $ 2 'TestFile.TXT

O comando acima imprime os nomes das pessoas contra o quarto campo mais significativo que 80 e o sexto campo maior que 0.4. E apenas dois registros estão cumprindo a condição.

As expressões especiais do comando AWK:

Lá duas expressões especiais, “COMEÇAR" e "FIM”:

Comece: executar uma ação antes que os dados sejam processados

Fim: para executar uma ação após o processamento dos dados

$ AWK 'BEGIN PRIM “Processamento começou”; print $ 2; Final print “Processamento terminou” 'testFile.TXT

A variável integrada útil do comando AWK:

O comando AWK possui várias variáveis ​​que ajudam no processamento de dados:

Variável Descrição
Nf Fornece o número de campos nos dados
Nr Dá o número do registro atual
NOME DO ARQUIVO Exibe o nome do arquivo que está sendo processado atualmente
FS e OFS Separador de campo e separador de campo de saída
Rs e ors Separa o separador de registro e registro de saída

Por exemplo:

$ awk 'end print “o nome do arquivo is” nome do arquivo “tem” nf “campos e” nr “registros”' testfile.TXT

Usamos "fim", mas se você usar "Begin", a saída daria 0 campos e 0 registros.

Como alterar o separador de registros:

O separador padrão no registro geralmente é espaço; Se houver uma vírgula "," ou ponto ".”Como seu separador de campo, use a opção“ FS ”junto com o separador.

Vamos ter outro arquivo em que os campos de dados são separados por uma vírgula com a vírgula “:”:

$ CAT TestFile2.TXT
$ awk 'BEGIN fs = “:” print $ 2' testFile2.TXT

Como o separador do arquivo é um cólon, mas o comando "Awk" mesmo benéfico para os arquivos como este, basta usar a opção "FS".

O "-f" também pode ser usado:

$ awk -f “:” 'print $ 2' testfile2.TXT

O separador de registro padrão é "newline" e para definir o separador de registros como ":", use:

$ awk 'BEGIN rs = “:” print $ 1' testFile2.TXT

Ações AWK:

As ações AWK são pequenos programas cercados por colchetes “” e têm mais de uma afirmação separada por semi-corons ";".

A declaração mais usada com o comando "Awk" é a declaração "impressa". Por exemplo, para imprimir um texto com cada registro, use a string de texto em cotações:

$ awk '"the is a field", $ 2' testfile.TXT

Vamos realizar uma operação simples de soma usando AWK:

$ awk 'sum += $ 4 end printf “%d \ n”, sum' testFile.TXT

Criando um programa AWK:

Vamos começar com a programação "Awk", a programação abaixo é simplesmente fazer multiplicação:

COMEÇAR
i = 2
enquanto (j<4)

Imprima “a multiplicação de 2 com” j “is” i*j;
j++

Salve o programa com o nome de “mycode.Awk”E para executá -lo, abra o terminal e digite:

$ awk -f mycode.Awk

Conclusão:

O comando "AWK" é um comando útil para processar, digitalizar dados de arquivos de texto, como separar qualquer campo específico de um arquivo; Usamos o comando "awk". Facilita a pesquisa de qualquer coisa de qualquer forma ou padrão dos arquivos de texto. Neste guia, entendemos o básico do comando "Awk" e seu uso. O comando "AWK" valida dados, gera relatórios e até analisa arquivos. O uso de comandos simples “Awk” também permite que os usuários escrevam programas minúsculos para processar dados com mais eficiência.