AWK - Fluxo de Trabalho
Para se tornar um programador AWK especialista, você precisa conhecer seus aspectos internos. AWK segue um fluxo de trabalho simples - Ler, Executar e Repetir. O diagrama a seguir descreve o fluxo de trabalho do AWK -
Ler
AWK lê uma linha do fluxo de entrada (arquivo, canal ou stdin) e a armazena na memória.
Executar
Todos os comandos AWK são aplicados sequencialmente na entrada. Por padrão, o AWK executa comandos em todas as linhas. Podemos restringir isso fornecendo padrões.
Repetir
Este processo se repete até que o arquivo chegue ao fim.
Estrutura do Programa
Vamos agora entender a estrutura do programa AWK.
Bloco BEGIN
A sintaxe do bloco BEGIN é a seguinte -
Syntax
BEGIN {awk-commands}
O bloco BEGIN é executado na inicialização do programa. Ele é executado apenas uma vez. Este é um bom lugar para inicializar variáveis. BEGIN é uma palavra-chave AWK e, portanto, deve estar em maiúsculas. Observe que este bloqueio é opcional.
Bloco de Corpo
A sintaxe do bloco de corpo é a seguinte -
Syntax
/pattern/ {awk-commands}
O bloco de corpo aplica comandos AWK em cada linha de entrada. Por padrão, o AWK executa comandos em todas as linhas. Podemos restringir isso fornecendo padrões. Observe que não há palavras-chave para o bloco Body.
Bloco END
A sintaxe do bloco END é a seguinte -
Syntax
END {awk-commands}
O bloco END é executado no final do programa. END é uma palavra-chave AWK e, portanto, deve estar em maiúsculas. Observe que este bloqueio é opcional.
Vamos criar um arquivo marks.txt que contém o número de série, nome do aluno, nome da disciplina e número de notas obtidas.
1) Amit Physics 80
2) Rahul Maths 90
3) Shyam Biology 87
4) Kedar English 85
5) Hari History 89
Vamos agora exibir o conteúdo do arquivo com cabeçalho usando o script AWK.
Example
[jerry]$ awk 'BEGIN{printf "Sr No\tName\tSub\tMarks\n"} {print}' marks.txt
Quando este código é executado, ele produz o seguinte resultado -
Output
Sr No Name Sub Marks
1) Amit Physics 80
2) Rahul Maths 90
3) Shyam Biology 87
4) Kedar English 85
5) Hari History 89
No início, AWK imprime o cabeçalho do bloco BEGIN. Em seguida, no bloco do corpo, ele lê uma linha de um arquivo e executa o comando de impressão do AWK, que apenas imprime o conteúdo no fluxo de saída padrão. Este processo se repete até que o arquivo chegue ao fim.