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.