Este artigo passará por alguns comandos interessantes e quando usá -los. Leia mais para descobrir! Introdução ao AWK
Awk é uma língua popular no Unix e Linux. Ele recebeu esse nome de seus autores: Alfred Aho, Peter Weinberger e Brian Kernighan. O comando AWK permite o acesso à linguagem de programação AWK, projetada para processar dados nos fluxos de texto.
Utilizado popularmente para padrões de digitalização e simplificando operações complexas, o AWK ajuda a escrever declarações eficazes para definir padrões de texto em um arquivo. O comando AWK então processa essas declarações lendo uma linha de cada vez e toma uma ação com base na condição dada.
Simplificando, a AWK encontra e substitui o texto e ajuda a classificar, validar ou indexar os dados fornecidos.
Recursos de Awk
Awk vem com muitos recursos exclusivos:
- Nenhuma compilação é necessária em Awk
- Frequentemente usado para extração de dados
- Comumente usado para realizar manipulação de texto
- Ajuda a gerar resultados conforme necessário.
Agora vamos explorar o poder dos comandos AWK.
15 comandos AWK interessantes
Aqui está uma lista compilada de alguns comandos AWK interessantes:
- Impressão de números aleatórios em um conjunto - Suponha que você queira imprimir alguns números aleatórios de uma piscina selecionada. Você pode especificar a quantidade de números aleatórios deste pool e pedir ao AWK para imprimir isto. Aqui está um exemplo: vamos imprimir 10 números de 0 a 1000. Portanto, o comando AWK para isso será o seguinte: Awk 'Begin for (i = 1; i <= 10; i++)
Print Int (1001 * rand ()) '
- Procurando por foo ou bar - E se você quiser escrever uma linha na qual deseja realizar uma pesquisa simples por foo ou bar? Aqui está um comando que permitirá que você faça exatamente isso: se (/foo/||/bar/)
imprimir "encontrado!"
- Reorganizando um campo - Se você deseja imprimir um determinado campo em uma determinada ordem, a AWK pode fazer isso por você. Suponha que você queira imprimir os 5 primeiros campos de um conjunto específico em um campo por linha, você pode usar o seguinte comando: awk 'i = 1
enquanto eu <= 3)
imprimir $ i
eu++
' Arquivo de entrada
- Dividindo uma linha - Em qualquer conjunto de arquivos, o AWK pode ajudar a dividir uma linha em campos, onde x é o nome do campo: $ awk 'print $ x, $ x' xyz.TXT
- Executando vários comandos de uma só vez - Para executar vários comandos ao mesmo! Jack "| awk '$ 2 =" jill "; imprimir $ 0'
- Executando um script AWK - Se você deseja executar um script AWK de um arquivo específico, pode criar um arquivo sum_column e colar o script abaixo nesse arquivo: #!/usr/bin/awk -f
Comece sum = 0
sum = soma+$ x
Final soma de impressão No script acima, x é igual à coluna que você precisa inserir no arquivo. Na conclusão bem -sucedida desta tarefa, você pode usar o seguinte comando para exibir a soma da coluna X no arquivo de entrada:
awk -f sum_column input_file.
- Usando -f - Quando codificando, muitas vezes pode parecer impraticável se referir ao terminal. Awk usa -f para executar a pesquisa de um arquivo: script AWK -F.Awk InputFile
- Executando funções matemáticas - Você também pode usar o AWK para funções matemáticas simples: awk 'sum = $ 2 + $ 3 + $ 4; avg = soma / 3
> Imprimir $ 1, AVG '
- Olá mundo em Awk - Você pode imprimir um mundo de olá simples em Awk usando o seguinte comando: Awk "Begin print" Hello World!!""
Você também pode criar um programa Hello World. O código a seguir não apenas imprimirá a onipresente mensagem Hello, mas também gerará informações sobre o cabeçalho:
$ AWK 'BEGIN PRIM "Hello World!" '
- Imprimindo o número total de bytes - Você pode descobrir o total de bytes usados pelos arquivos usando o seguinte comando: ls -l . | awk 'x += $ 5; FIM \
Imprimir "Total Bytes:" X '
Bytes totais: 7449362
- Anonimizando um log do Apache - Você pode usar o seguinte código para anonimizar um log Apache: Cat Apache-Anon-Noadmin.log | \
função awk 'ri (n) \
return int (n*rand ()); \
Comece srand (); se (! \
($ 5 em Jack)) \
jack [$ 5] = sprintf ("%d.%d.%d.%d ", \
RI (255), RI (255) \
, RI (255), RI (255)); \
$ 5 = jack [$ 5]; imprimir __g5_token5b610ba53dbe4 '
- Operando em linhas - Se você tiver um endereço que gostaria de classificar em linhas, pode fazê -lo usando o seguinte comando: Begin rs = ""; Fs = "\ n"
Imprimir "Nome Is:", $ 1
Imprimir "Endereço é:", $ 2
Imprimir "City and State são:", US $ 3
imprimir ""
- Usando o loop while - O loop enquanto continua executando a ação dada a ele em um processo repetido até que a condição seja verdadeira. Por exemplo, para imprimir números de 1 a 100, você pode usar o seguinte código: Awk 'BEGIN i = 1; enquanto eu < 100) print i; ++i '
- Usando o loop do dado-while - Nesse loop, a condição é executada no final do loop, mesmo que a declaração seja falsa. Por exemplo, para imprimir números de 1 a 100 usando um loop do dado-while, você pode usar o seguinte código: Awk 'BEGIN i = 1; fazer print i; ++ i while (eu < 100) '
- Usando Begin e End - A palavra -chave BEGN é usada para criar um cabeçalho para processar seu registro: $ awk 'Begin print "xxx"
Da mesma forma, a palavra -chave final é usada após o processamento dos dados:
Final print "Footer" ''
Isso conclui a lista de 15 comandos AWK interessantes. Você pode experimentá -los e ver os resultados. Espero que você ache útil. Se você achou este artigo interessante, pode explorar o Mastering Linux Shell Script - Segunda Edição. Neste livro, você descobrirá tudo o que precisa saber para dominar scripts e fazer escolhas informadas sobre os elementos que você emprega.