Não sou nenhum expert ou grande conhecedor da linguagem AWK, mas ela é muito útil e me ajudou muito nas provas sobre Shell Script na faculdade. Por isso resolvi escrever este pequeno e introdutório tutorial acerca dessa linguagem. É bom todo usuário Linux saber usá-la. :)
AWK é uma linguagem utilizada para processamento de informações em texto, como o conteúdo de um arquivo - principalmente informações em colunas - ou a saída de outros comandos, como cat, grep etc.
A estrutura de um script AWK (pode estar em um arquivo ou ser escrito diretamente na linha de comando - Shell) é a seguinte:
BEGIN{
Comandos executados ao iniciar o processamento, antes de ler as linhas do texto
}
[condicao]{
Comandos a serem executados em todas as linhas do texto
}
END{
Comando final. Executado após o processamento de todas as linhas
}
A condição do segudo bloco é opcional. Se não especificada, os respectivos comandos do bloco serão executados em todas as linhas. Caso contrário, serão executados apenas nas linhas que satisfizerem a condição.
A condição pode ser uma expressão regular. Basta colocá-la entre barras:
/^A/{
Comando...
}
Se um bloco de comandos estiver vazio, é executado print $0, ou seja, imprime a linha corrente.
Algumas variáveis definidas no AWK:
FS -> separador de campos
NR -> número da linhas
NF -> número de campos na linha
Para mais informações:
Pergunta
Beraldo
Não sou nenhum expert ou grande conhecedor da linguagem AWK, mas ela é muito útil e me ajudou muito nas provas sobre Shell Script na faculdade. Por isso resolvi escrever este pequeno e introdutório tutorial acerca dessa linguagem. É bom todo usuário Linux saber usá-la. :)
AWK é uma linguagem utilizada para processamento de informações em texto, como o conteúdo de um arquivo - principalmente informações em colunas - ou a saída de outros comandos, como cat, grep etc.
A estrutura de um script AWK (pode estar em um arquivo ou ser escrito diretamente na linha de comando - Shell) é a seguinte:
A condição do segudo bloco é opcional. Se não especificada, os respectivos comandos do bloco serão executados em todas as linhas. Caso contrário, serão executados apenas nas linhas que satisfizerem a condição. A condição pode ser uma expressão regular. Basta colocá-la entre barras: Se um bloco de comandos estiver vazio, é executado print $0, ou seja, imprime a linha corrente. Algumas variáveis definidas no AWK: FS -> separador de campos NR -> número da linhas NF -> número de campos na linha Para mais informações:- Manpage do AWK: $ man awk
- http://www.gnu.org/software/gawk/manual/gawk.html
- http://en.wikipedia.org/wiki/Awk
Exemplos: Filtra as linhas com o padrão especificado. Linhas que terminam com conf Usando outro separador de campos e imprimindo colunas Usando separador de campos Numerando linhas Filtra linhas com padrão especificado e mostra apenas as colunas 1 e 8. Imprime as linhas com mais de 3 campos. Elimina a primeira linha do ls -l (Total) Filtra linhas com arquivos cujos nomes possuem menos de 5 caracteres Imprime linhas pares Substitui strings Procura expressão em determinado campo Inserindo strings entre campos Filtra a saída de ls -l, a fim de mostrar o nome do arquivo, suas permissões e seu tamanho (a condição NR != 1 evita que a linha Total seja exibida): Imprime o comprimento da maior linha Imprime as linhas com mais de 42 caracteres Exibe o número de linhas do arquivo Editado por BeraldoLink para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.