Comando Gawk: O que é?

Comando gawk significa processamento de padrões e linguagem de digitalização. Outras terminologias:

  • gawk [opções de estilo POSIX ou GNU] -f arquivo de programa [  [] arquivo…
  • ]. gawk [opções de estilo POSIX ou GNU] [  ] arquivo de texto do programa ….
  • pgawk [opções de estilo POSIX ou GNU] -f arquivo de programa [  ] arquivo…
  • >. pgawk [opções de estilo POSIX ou GNU] [  ] arquivo de texto de programa ….

Veja mais detalhes em nosso site.

Mais Detalhes sobre o Comando Gawk

Gawk é a implementação do Projeto GNU da linguagem de programação AWK. Está em conformidade com a definição da linguagem no padrão POSIX 1003.2 Command Language And Utilities. 

Essa versão, por sua vez, é baseada na descrição em The AWK Programming Language , de Aho, Kernighan e Weinberger, com os recursos adicionais encontrados na versão 4 do System V Release do UNIX awk . O Gawk também fornece extensões awk mais recentes do Bell Laboratories e várias extensões específicas do GNU.

Pgawk é a versão de criação de perfil do gawk . Ele é idêntico em todos os sentidos para gawk , exceto que os programas de ficar mais lento, e ele automaticamente produz um perfil de execução na awkprof.out arquivo quando ele é feito. Veja a opção –profile , abaixo.

A linha de comando consiste em opções para o próprio gawk , o texto do programa AWK (se não fornecido por meio das opções -f ou -file ) e os valores que devem estar disponíveis nas variáveis ARGC e ARGV AWK predefinidas.

Formato de opção

As opções do Gawk podem ser opções POSIX tradicionais de uma letra ou opções longas no estilo GNU. As opções POSIX começam com um único “-“, enquanto as opções longas começam com “-“. 

Opções longas são fornecidas para os recursos específicos do GNU e os recursos obrigatórios do POSIX.

Seguindo o padrão POSIX, opções específicas do comando gawk são fornecidas como argumentos para a opção -W . Múltiplas opções -W podem ser fornecidas. Cada opção -W tem uma opção longa correspondente, conforme detalhado abaixo. 

Argumentos de opção longos são unidos à opção por um sinal = , sem espaços intermediários, ou podem ser fornecidos no próximo argumento da linha de comando. Opções longas podem ser abreviadas, desde que a abreviação permaneça exclusiva.

Escolhas

O comando Gawk aceita as seguintes opções, listadas em ordem alfabética.

-F fs

–Field-separator fs Use fs para o separador de campo de entrada (o valor da variável predefinida FS ).

-v var val

–Assign var val Atribui o valor val à variável var , antes que a execução do programa comece. Esses valores de variáveis ​​estão disponíveis para o bloco BEGIN de um programa AWK.

-f arquivo de programa –Arquivo arquivo de programa Lê o código-fonte do programa AWK do arquivo de programa arquivo de programa , em vez do primeiro argumento na linha de comando. Múltiplas opções -f (ou –file ) podem ser usadas .

-mf NNNN

-mr NNN Define vários limites de memória para o valor NNNN . O sinalizador f define o número máximo de campos e o sinalizador r define o tamanho máximo do registro. 

Esses dois sinalizadores e a opção -m são da versão de pesquisa do UNIX awk do Bell Laboratories . Eles são ignorados pelo gawk , uma vez que o gawk não tem limites predefinidos.

-W compat

-W tradicional

–Compat

–Tradicional Executar em modo de compatibilidade . No modo de compatibilidade, gawk se comporta de forma idêntica ao UNIX awk ; nenhuma das extensões específicas do GNU são reconhecidas. O uso de –traditional é preferido em relação às outras formas desta opção. Veja EXTENSÕES GNU , abaixo, para mais informações.

-W copyleft

-W copyright

–Copyleft

–Copyright Imprime a versão resumida da mensagem de informação de copyright do GNU na saída padrão e fecha corretamente.

-W variáveis ​​de despejo [ arquivo ]

–Dump-variables [ file ] Imprime uma lista ordenada de variáveis ​​globais, seus tipos e valores finais no arquivo . Se nenhum arquivo for fornecido , o gawk usará um arquivo chamado awkvars.out no diretório atual.

Ter uma lista de todas as variáveis ​​globais é uma boa maneira de verificar se há erros de digitação em seus programas. Você também usaria essa opção se tiver um programa grande com muitas funções e quiser ter certeza de que suas funções não usam inadvertidamente variáveis ​​globais que você deseja que sejam locais. (Este é um erro particularmente fácil de cometer com nomes de variáveis ​​simples como i , j e assim por diante.)

-W ajuda

-W usar

-Socorro

–Usage Imprime um resumo relativamente curto das opções disponíveis para a saída padrão. (De acordo com os padrões de codificação GNU , essas opções causam uma saída imediata e bem-sucedida.)

-W fluff [ = fatal ]

–Lint [ = fatal ] Fornece avisos sobre construções que são duvidosas ou não portáveis ​​para outras implementações AWK. Com um argumento opcional de fatal , os avisos de fluff são transformados em erros fatais. Isso pode ser drástico, mas seu uso certamente incentivará o desenvolvimento de programas AWK mais limpos.

-W lint-old

–Lint-old Fornece avisos sobre compilações que não são portáveis ​​para a versão original do awk do Unix .

-W gen-po

–Gen-po Verifica e analisa o programa AWK e gera um arquivo de formato GNU .po na saída padrão com entradas para todas as strings localizáveis ​​no programa. O próprio programa não funciona. Veja a distribuição GNU gettext para mais informações sobre arquivos .po .

-W dados não decimais

–Dados não decimais Reconhecer valores octais e hexadecimais nos dados de entrada. Use esta opção com muito cuidado!

-W posix

–Posix Isso ativa o modo de compatibilidade , com as seguintes restrições adicionais:

*

x sequências de escape não são reconhecidas.

*

Apenas o espaço e a tabulação atuam como separadores de campo quando FS é definido como um espaço único, enquanto a nova linha não.

*

Não é possível continuar as linhas depois : .

*

O sinônimo func para a função de palavra-chave não é reconhecido.

*

Os operadores ** e ** = não podem ser usados ​​no lugar de ^ e ^ = .

*

A função fflush () não está disponível.

-Perfil W [ prof_file ]

–Profile [ prof_file ] Enviar dados de perfil para prof_file . O padrão é awkprof.out . Quando executado com o gawk , o perfil é apenas uma versão “impressa” do programa. Quando executado com o pgawk , o perfil contém as contagens de execução para cada instrução no programa na margem esquerda e as contagens de chamadas de função para cada função definida pelo usuário.

-W re-intervalo

–Re-interval Habilite o uso de expressões de intervalo na correspondência de expressões regulares (consulte Expressões regulares , abaixo). 

Expressões de intervalo não estavam tradicionalmente disponíveis na linguagem AWK. O padrão POSIX os adicionou para que awk e egrep sejam consistentes um com o outro. 

No entanto, seu uso provavelmente interromperá programas AWK mais antigos, portanto, o comando gawk só os fornece se essa opção for solicitada ou quando –posix for especificado.

-W texto do programa fonte

–Source program-text Use o program-text como código-fonte para o programa AWK. Esta opção permite que você combine facilmente funções de biblioteca (usadas por meio das opções -f e –file ) com o código-fonte inserido na linha de comando. Destina-se principalmente a programas AWK médios e grandes usados ​​em scripts de shell.

-W versão

–Informações da versão impressas para esta cópia específica do comando gawk na saída padrão. Isso é principalmente útil para ver se a cópia atual do gawk em seu sistema está atualizada com o que a Free Software Foundation está distribuindo. 

Isso também é útil quando bugs são relatados. (De acordo com os padrões de codificação GNU , essas opções causam uma saída imediata e bem-sucedida.)

 Marca o fim das opções. Isso é útil para permitir que outros argumentos no próprio programa AWK comecem com um “-“. Isso se deve principalmente à consistência com a convenção de análise de argumentos usada pela maioria dos outros programas POSIX.

No modo de compatibilidade, qualquer outra opção é marcada como inválida, mas ignorada. Em operação normal, desde que o texto do programa tenha sido fornecido, as opções desconhecidas são transferidas para o programa AWK na matriz ARGV para processamento. Isso é particularmente útil para executar programas AWK por meio do executável “` #!

EXECUÇÃO DO PROGRAMA AWK

Um programa AWK consiste em uma sequência de instruções de ação padrão e definições de função opcionais.

padrão instruções de ação nome da
função lista de parâmetros ) { instruções }

O Gawk primeiro lê o código-fonte do programa do (s) arquivo (s) de programa, se especificado, dos argumentos para –source ou do primeiro argumento sem opção na linha de comando. As opções -f e –source podem ser usadas várias vezes na linha de comando. 

O comando Gawk lê o texto do programa como se todos os textos-fonte do arquivo do programa e a linha de comando tivessem sido concatenados. Isso é útil para construir bibliotecas de funções AWK, sem ter que incluí-las em cada novo programa AWK que as usa. 

Ele também oferece a capacidade de combinar funções de biblioteca com programas de linha de comando.

variável de ambiente AWKPATH especifica um caminho de pesquisa a ser usado ao pesquisar arquivos de origem nomeados com a opção -f . Se esta variável não existir, o caminho padrão é “.: / Usr / local / share / awk” (o diretório real pode variar, dependendo de como o gawk foi construído e instalado ). 

Se um nome de arquivo dado à opção -f contiver um caractere “/” ‘, nenhuma pesquisa de caminho será realizada.

O Comando Gawk executa programas AWK na seguinte ordem. Primeiro, todas as atribuições de variáveis ​​especificadas pela opção -v são executadas . O gawk então compila o programa em um formato interno. 

Em seguida, o gawk executa o código no bloco BEGIN (se existir) e, em seguida, prossegue com a leitura de cada arquivo nomeado no array ARGV . Se não houver arquivos nomeados na linha de comando, o gawk lê a entrada padrão.

Se um nome de arquivo na linha de comando tiver o formato var val, ele será tratado como uma atribuição de variável. A variável var receberá o valor val . (Isso acontece depois que qualquer bloco BEGIN foi executado .

A atribuição de variável de linha de comando é mais útil para atribuir valores dinamicamente a variáveis ​​que o AWK usa para controlar como a entrada é dividida em campos e registros. Também é útil para controlar o status se houver vários passes são necessários em um único arquivo de dados.

Se o valor de um elemento ARGV específico estiver vazio ( “” ), o gawk o ignorará .

Para cada registro na entrada, o comando gawk testa para ver se corresponde a algum padrão no programa AWK. Para cada padrão que corresponde ao registro, a ação de ação associada é executada .

Comments are closed.