InglêsFrancêsEspanhol

Ad


favicon do OnWorks

gawk - Online na nuvem

Execute o gawk no provedor de hospedagem gratuita OnWorks no Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

Este é o comando gawk que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

PROGRAMA:

NOME


gawk - digitalização de padrões e linguagem de processamento

SINOPSE


gawk [Opções de estilo POSIX ou GNU] -f arquivo de programa [ -- ] Arquivo ...
gawk [Opções de estilo POSIX ou GNU] [ -- ] texto do programa Arquivo ...

DESCRIÇÃO


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.1. Esta versão, por sua vez, é
com base na descrição em A AWK Programação Língua, por Aho, Kernighan e
Weinberger. Gawk fornece os recursos adicionais encontrados na versão atual de Brian
Kernighan's awk e uma série de extensões específicas do GNU.

A linha de comando consiste em opções para gawk em si, o texto do programa AWK (se não for fornecido
via -f or --Arquivo opções), e os valores a serem disponibilizados nas ARGC e ARGV pré-
variáveis ​​AWK definidas.

Quando gawk é invocado com o --perfil opção, ele começa a reunir estatísticas de perfil
desde a execução do programa. Gawk corre mais devagar neste modo e automaticamente
produz um perfil de execução no arquivo awkprof.out quando terminar. Veja o --perfil
opção, abaixo.

Gawk também possui um depurador integrado. Uma sessão de depuração interativa pode ser iniciada por
fornecendo o --depurar opção para a linha de comando. Neste modo de execução, gawk cargas
o código-fonte AWK e, em seguida, solicita os comandos de depuração. Gawk só pode depurar AWK
fonte do programa fornecida com o -f opção. O depurador está documentado em GAWK: Eficaz
AWK Programação.

OPÇÃO FORMATO


Gawk as opções podem ser opções tradicionais de uma letra no estilo POSIX ou longas no estilo GNU
opções. As opções POSIX começam com um único “-”, enquanto as opções longas começam com “-”. Grandes
opções são fornecidas para recursos específicos do GNU e para recursos obrigatórios do POSIX.

Gawk-opções específicas são normalmente usadas na forma de opções longas. Argumentos para opções longas
são unidos com a opção por um = sinal, sem espaços intermediários, ou eles podem ser
fornecido no próximo argumento da linha de comando. Opções longas podem ser abreviadas, contanto que
a abreviatura permanece única.

Além disso, cada opção longa tem uma opção curta correspondente, de modo que a opção é
a funcionalidade pode ser usada de dentro #! scripts executáveis.

OPÇÕES


Gawk aceita as seguintes opções. As opções padrão são listadas primeiro, seguidas por
opções para gawk extensões, listadas em ordem alfabética por opção curta.

-f arquivo de programa
--Arquivo arquivo de programa
Leia a fonte do programa AWK no arquivo arquivo de programa, em vez do primeiro
argumento da linha de comando. Múltiplo -f (ou --Arquivo) opções podem ser usadas.

-F fs
--separador de campo fs
Use fs para o separador de campo de entrada (o valor do FS variável predefinida).

-v var=onda
--atribuir var=onda
Atribuir o valor onda para a variável var, antes do início da execução do programa.
Esses valores de variáveis ​​estão disponíveis para o INÍCIO regra de um programa AWK.

-b
--caracteres como bytes
Trate todos os dados de entrada como caracteres de byte único. Em outras palavras, não pague nenhum
atenção às informações de localidade ao tentar processar strings como multibyte
personagens. o --posix opção substitui esta.

-c
--tradicional
Correr em compatibilidade modo. No modo de compatibilidade, gawk se comporta de forma idêntica a
Brian Kernighan's awk; nenhuma das extensões específicas do GNU são reconhecidas. Ver GNU
EXTENSÕES, abaixo, para mais informações.

-C
--direito autoral
Imprima a versão resumida da mensagem de informações de direitos autorais GNU no padrão
saída e saída com sucesso.

-d[lima]
--variáveis ​​de despejo[=lima]
Imprima uma lista classificada de variáveis ​​globais, seus tipos e valores finais para lima. Se
não lima é fornecido, gawk usa um arquivo chamado awkvars.out no diretório atual.
Ter uma lista de todas as variáveis ​​globais é uma boa maneira de procurar por dados tipográficos
erros em seus programas. Você também usaria esta opção se tivesse um grande
programa com muitas funções, e você quer ter certeza de que suas funções não
use inadvertidamente variáveis ​​globais que você pretendia ser locais. (Isto é um
erro particularmente fácil de cometer com nomes de variáveis ​​simples como i, j, e assim por diante.)

-D[lima]
--depurar[=lima]
Habilite a depuração de programas AWK. Por padrão, o depurador lê comandos
interativamente a partir do teclado (entrada padrão). O opcional lima argumento
especifica um arquivo com uma lista de comandos para o depurador executar
interativamente.

-e texto do programa
--fonte texto do programa
Use texto do programa como código-fonte do programa AWK. Esta opção permite o fácil
mistura de funções de biblioteca (usada por meio do -f e --Arquivo opções) com fonte
código inserido na linha de comando. Destina-se principalmente a médio a grande AWK
programas usados ​​em scripts de shell.

-E lima
--exec lima
Semelhante a -f, entretanto, esta opção é a última processada. Isso deve ser
usado com #! scripts, especialmente para aplicativos CGI, para evitar a passagem
opções ou código-fonte (!) na linha de comando de um URL. Esta opção desativa
atribuições de variáveis ​​de linha de comando.

-g
--gen-pot
Digitalize e analise o programa AWK e gere um GNU .Panela (Modelo de objeto portátil)
arquivo de formato na saída padrão com entradas para todas as strings localizáveis ​​no
programa. O próprio programa não é executado. Veja o GNU gettext distribuição para
mais informações sobre .Panela arquivos.

-h
--Socorro Imprima um resumo relativamente curto das opções disponíveis na saída padrão.
(Por GNU Codificação Standards, essas opções causam uma saída imediata e bem-sucedida.)

-i incluir arquivo
--incluir incluir arquivo
Carregue uma biblioteca de origem do awk. Isso procura a biblioteca usando o AWKPATHGenericName
variável de ambiente. Se a pesquisa inicial falhar, outra tentativa será feita
depois de anexar o .awk sufixo. O arquivo será carregado apenas uma vez (ou seja,
duplicatas são eliminadas), e o código não constitui o programa principal
fonte.

-l lib
--carga lib
Carregar uma biblioteca compartilhada lib. Isso procura a biblioteca usando o AWKLIBPATHGenericName
variável de ambiente. Se a pesquisa inicial falhar, outra tentativa será feita
depois de anexar o sufixo da biblioteca compartilhada padrão para a plataforma. A biblioteca
espera-se que a rotina de inicialização seja nomeada dl_load ().

-L [valor]
--lint[=valor]
Fornece avisos sobre construções duvidosas ou não portáteis para outro AWK
implementações. Com um argumento opcional de fatal, os avisos de fiapos tornam-se fatais
erros. Isso pode ser drástico, mas seu uso certamente incentivará o desenvolvimento
de programas AWK mais limpos. Com um argumento opcional de inválido, apenas avisos sobre
coisas que são realmente inválidas são emitidas. (Isso ainda não está totalmente implementado.)

-M
-- bignum
Força aritmética de precisão arbitrária em números. Esta opção não tem efeito se gawk
não é compilado para usar as bibliotecas GNU MPFR e MP.

-n
--dados não-decimais
Reconhecer valores octais e hexadecimais nos dados de entrada. Use isto opção com ótimo
Cuidado!

-N
--use-lc-numérico
Isso força gawk para usar o caractere de ponto decimal do local ao analisar a entrada
dados. Embora o padrão POSIX exija esse comportamento, e gawk faz quando
--posix está em vigor, o padrão é seguir o comportamento tradicional e usar um
período como o ponto decimal, mesmo em locais onde o ponto não é o ponto decimal
personagem de ponto. Esta opção substitui o comportamento padrão, sem o completo
rigidez draconiana do --posix opção.

-o[lima]
--pretty-print[=lima]
Produza uma versão bem impressa do programa para lima. Se não lima é fornecido,
gawk usa um arquivo chamado awkprof.out no diretório atual.

-O
--otimizar
Habilite otimizações sobre a representação interna do programa. Atualmente,
isso inclui dobramento constante simples e eliminação de chamada final para recursiva
funções. o gawk o mantenedor espera adicionar otimizações adicionais ao longo do tempo.

-p[arquivo-prof]
--perfil[=arquivo-prof]
Inicie uma sessão de criação de perfil e envie os dados de criação de perfil para arquivo-prof. O padrão
is awkprof.out. O perfil contém contagens de execução de cada instrução no
programa na margem esquerda e contagens de chamadas de função para cada função definida pelo usuário.

-P
--posix
Isso liga compatibilidade modo, com as seguintes restrições adicionais:

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

· Apenas espaço e tabulação atuam como separadores de campo quando FS é definido para um único espaço,
newline, não.

· Você não pode continuar linhas depois ? e :.

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

· Os operadores ** e ** = não pode ser usado no lugar de ^ e ^=.

-r
--re-intervalo
Permitir o uso de intervalo expressões na correspondência de expressões regulares (ver Regular
Expressões, abaixo). Expressões de intervalo não estavam tradicionalmente disponíveis no
Linguagem AWK. O padrão POSIX os adicionou, para fazer awk e egrep coerente com
uns aos outros. Eles são ativados por padrão, mas esta opção permanece para uso com
--tradicional.

-S
--caixa de areia
Runs gawk no modo sandbox, desativando o sistema() função, redirecionamento de entrada com
Obter linha, redirecionamento de saída com impressão e printfe carregando extensões dinâmicas.
A execução de comandos (por meio de pipelines) também é desabilitada. Isso bloqueia efetivamente um
script de acessar recursos locais (exceto para os arquivos especificados no
linha de comando).

-t
--lint-velho
Fornece avisos sobre construções que não são portáveis ​​para a versão original do
UNIX awk.

-V
--versão
Imprimir informações da versão para esta cópia particular de gawk na saída padrão.
Isso é útil principalmente para saber se a cópia atual do gawk no seu sistema está ativo
até o momento com relação a tudo o que a Free Software Foundation está distribuindo.
Isso também é útil ao relatar bugs. (Por GNU Codificação Standards, Estes
opções causam uma saída imediata e bem-sucedida.)

-- Sinalize o fim das opções. Isso é útil para permitir mais argumentos para o AWK
programa-se para começar com um “-”. Isso fornece consistência com o argumento
convenção de análise usada pela maioria dos outros programas POSIX.

No modo de compatibilidade, quaisquer outras opções são sinalizadas como inválidas, mas são de outra forma
ignorado. Em operação normal, desde que o texto do programa tenha sido fornecido, opções desconhecidas
são repassados ​​para o programa AWK no ARGV array para processamento. Isto é particularmente
útil para executar programas AWK através do “#!” mecanismo de interpretador executável.

Para compatibilidade POSIX, o -W opção pode ser usada, seguida do nome de uma opção longa.

AWK PROGRAMA EXECUÇÃO


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

@incluir "nome do arquivo"
@carga "nome do arquivo"
de cinto de segurança { açao declarações }
função nome(parâmetro Lista) { declarações }

Gawk primeiro lê o código-fonte do programa do arquivo de programa(s) se especificado, a partir de argumentos
para --fonte, ou a partir do primeiro argumento sem opção na linha de comando. O -f e
--fonte as opções podem ser usadas várias vezes na linha de comando. Gawk lê o programa
texto como se todo o arquivo de programase os textos-fonte da linha de comando foram concatenados
juntos. Isso é útil para construir bibliotecas de funções AWK, sem ter que
inclua-os em cada novo programa AWK que os utiliza. Ele também oferece a capacidade de misturar
funções de biblioteca com programas de linha de comando.

Além disso, as linhas que começam com @incluir pode ser usado para incluir outros arquivos de origem em
seu programa, tornando o uso da biblioteca ainda mais fácil. Isso é equivalente a usar o -i opção.

Linhas começando com @carga pode ser usado para carregar bibliotecas compartilhadas em seu programa. Isto
é equivalente a usar o -l opção.

A variável de ambiente AWKPATHGenericName especifica um caminho de pesquisa para usar ao encontrar os arquivos de origem
nomeado com o -f e -i opções. Se esta variável não existir, o caminho padrão é
".: / usr / local / share / awk". (O diretório real pode variar, dependendo de como gawk foi
construído e instalado.) Se um nome de arquivo dado ao -f opção contém um caractere “/”, não
a pesquisa de caminho é executada.

A variável de ambiente AWKLIBPATHGenericName especifica um caminho de pesquisa para usar ao encontrar a fonte
arquivos nomeados com o -l opção. Se esta variável não existir, o caminho padrão é
"/ usr / local / lib / gawk". (O diretório real pode variar, dependendo de como gawk foi construído
e instalado.)

Gawk executa programas AWK na seguinte ordem. Primeiro, todas as atribuições de variáveis
especificado através do -v opção são realizadas. Próximo, gawk compila o programa em um
forma interna. Então, gawk executa o código no INÍCIO regra (s) (se houver), e então
continua a ler cada arquivo nomeado no ARGV array (até ARGV [ARGC]) Se não houver
arquivos nomeados na linha de comando, gawk lê a entrada padrão.

Se um nome de arquivo na linha de comando tiver a forma var=onda é tratado como uma variável
atribuição. A variável var será atribuído o valor onda. (Isso acontece depois de qualquer
INÍCIO regra (s) foram executadas.) A atribuição de variáveis ​​de linha de comando é mais útil para
atribuir valores dinamicamente às variáveis ​​que AWK usa para controlar como a entrada é dividida em
campos e registros. Também é útil para controlar o estado se várias passagens forem necessárias
em um único arquivo de dados.

Se o valor de um determinado elemento de ARGV está vazia (""), gawk pula isso.

Para cada arquivo de entrada, se um COMEÇAR ARQUIVO regra existe, gawk executa o código associado antes
processar o conteúdo do arquivo. Similarmente, gawk executa o código associado com
FIM DO ARQUIVO depois de processar o arquivo.

Para cada registro na entrada, gawk testa para ver se corresponde a algum de cinto de segurança no AWK
programa. Para cada padrão que o registro corresponde, gawk executa o associado açao.
Os padrões são testados na ordem em que ocorrem no programa.

Finalmente, depois que toda a entrada se esgota, gawk executa o código no END regra (s) (se
algum).

Command Line diretórios
De acordo com POSIX, os arquivos nomeados no awk linha de comando deve ser arquivos de texto. O comportamento
é `` indefinido '' se não forem. A maioria das versões de awk tratar um diretório no comando
linha como um erro fatal.

Começando com a versão 4.0 de gawk, um diretório na linha de comando produz um aviso, mas
caso contrário, é ignorado. Se qualquer um dos --posix or --tradicional opções são dadas, então
gawk volta a tratar os diretórios na linha de comando como um erro fatal.

VARIÁVEIS, RECORDS E CAMPOS


As variáveis ​​AWK são dinâmicas; eles passam a existir quando são usados ​​pela primeira vez. Seus
os valores são números de ponto flutuante ou strings, ou ambos, dependendo de como eles são
usava. AWK também tem matrizes unidimensionais; matrizes com múltiplas dimensões podem ser
simulado. Gawk fornece matrizes verdadeiras de matrizes; Vejo Arrays, abaixo. Vários pré-definidos
as variáveis ​​são definidas à medida que o programa é executado; estes são descritos conforme necessário e resumidos abaixo.

GRAVAÇÕES
Normalmente, os registros são separados por caracteres de nova linha. Você pode controlar como os registros são
separados pela atribuição de valores à variável embutida RS. Se RS é qualquer caractere único,
esse caractere separa os registros. De outra forma, RS é uma expressão regular. Texto no
a entrada que corresponde a esta expressão regular separa o registro. No entanto, em
modo de compatibilidade, apenas o primeiro caractere de seu valor de string é usado para separar
registros. Se RS é definido como a string nula, então os registros são separados por linhas em branco.
Quando RS é definido como a string nula, o caractere de nova linha sempre atua como um separador de campo,
além de qualquer valor FS pode ter.

Campos
À medida que cada registro de entrada é lido, gawk divide o registro em Campos, usando o valor de
FS variável como o separador de campo. Se FS é um único caractere, os campos são separados por
aquele personagem. Se FS é a string nula, então cada caractere individual se torna um
campo separado. De outra forma, FS espera-se que seja uma expressão regular completa. No
caso especial que FS é um único espaço, os campos são separados por sequências de espaços e / ou tabulações
e / ou novas linhas. (Mas veja a seção POSIX COMPATIBILIDADE, abaixo). NOTA: O valor de
IGNORAR CASO (veja abaixo) também afeta como os campos são divididos quando FS é uma expressão regular,
e como os registros são separados quando RS é uma expressão regular.

Se o LARGURA DE CAMPO variável é definida como uma lista de números separados por espaço, cada campo é
deve ter largura fixa, e gawk divide o registro usando as larguras especificadas.
O valor de FS é ignorado. Atribuindo um novo valor a FS or FPAT substitui o uso de
LARGURA DE CAMPO.

Da mesma forma, se o FPAT variável é definida como uma string que representa uma expressão regular, cada
campo é composto de texto que corresponde a essa expressão regular. Neste caso, o regular
expressão descreve os próprios campos, em vez do texto que separa os campos.
Atribuindo um novo valor a FS or LARGURA DE CAMPO substitui o uso de FPAT.

Cada campo no registro de entrada pode ser referenciado por sua posição: $1, $2, E assim por diante. $0
é o registro completo. Os campos não precisam ser referenciados por constantes:

n = 5
impressão $n

imprime o quinto campo no registro de entrada.

A variável NF é definido como o número total de campos no registro de entrada.

Referências a campos inexistentes (ou seja, campos após $ NF) produzem a string nula.
No entanto, atribuir a um campo inexistente (por exemplo, $ (NF + 2) = 5) aumenta o valor de NF,
cria quaisquer campos intermediários com a string nula como seus valores e faz com que o valor
of $0 a ser recalculado, com os campos sendo separados pelo valor de FSO. Referências
para campos numerados negativos causam um erro fatal. Decrementar NF faz com que os valores de
campos após o novo valor a ser perdido e o valor de $0 a ser recalculado, com o
campos sendo separados pelo valor de FSO.

Atribuir um valor a um campo existente faz com que todo o registro seja reconstruído quando $0 is
referenciado. Da mesma forma, atribuir um valor a $0 faz com que o registro seja dividido novamente, criando
novos valores para os campos.

Autenticador Variáveis
GawkAs variáveis ​​integradas de são:

ARGC O número de argumentos de linha de comando (não inclui opções para gawk, Ou o
fonte do programa).

ARGINDO O índice em ARGV do arquivo atual sendo processado.

ARGV Matriz de argumentos de linha de comando. A matriz é indexada de 0 a ARGC - 1.
Alterando dinamicamente o conteúdo de ARGV pode controlar os arquivos usados ​​para dados.

MODO BIN Em sistemas não POSIX, especifica o uso do modo “binário” para todas as E / S de arquivo.
Valores numéricos de 1, 2 ou 3, especificam que arquivos de entrada, arquivos de saída ou todos
arquivos, respectivamente, devem usar E / S binária. Valores de string de "r"ou "C"
especificar que os arquivos de entrada ou de saída, respectivamente, devem usar binários
I / O. Valores de string de "rw" or "wr" especificar que todos os arquivos devem usar binários
I / O. Qualquer outro valor de string é tratado como "rw", mas gera um aviso
mensagem.

CONVFMT O formato de conversão para números, "% .6g", por padrão.

AMBIENTE Uma matriz contendo os valores do ambiente atual. A matriz é
indexado pelas variáveis ​​de ambiente, cada elemento sendo o valor daquele
variável (por exemplo, ENVIRON ["CASA"] pode ser "/ home / arnold") Alterando esta matriz
não afeta o meio ambiente visto por programas que gawk desova via
redirecionamento ou o sistema() função.

ERRO Se ocorrer um erro de sistema, faça um redirecionamento para Obter linha, durante uma leitura
para Obter linha, ou durante um fechar(), Em seguida ERRO irá conter uma string descrevendo
o erro. O valor está sujeito a tradução em localidades diferentes do inglês.

LARGURA DE CAMPO Uma lista de larguras de campo separadas por espaços em branco. Quando definido, gawk analisa a entrada
em campos de largura fixa, em vez de usar o valor de FS variável como
o separador de campo. Ver Campos, acima.

NOME DO ARQUIVO O nome do arquivo de entrada atual. Se nenhum arquivo for especificado no comando
linha, o valor de NOME DO ARQUIVO é "-". Contudo, NOME DO ARQUIVO é indefinido dentro do
INÍCIO regra (a menos que definido por Obter linha).

FNR O número do registro de entrada no arquivo de entrada atual.

FPAT Uma expressão regular que descreve o conteúdo dos campos em um registro. Quando
conjunto, gawk analisa a entrada em campos, onde os campos correspondem ao
expressão, em vez de usar o valor de FS variável como o campo
separador. Ver Campos, acima.

FS O separador de campo de entrada, um espaço por padrão. Ver Campos, acima.

FUNCTAB Uma matriz cujos índices e valores correspondentes são os nomes de todos os usuários
funções definidas ou de extensão no programa. NOTA: Você não pode usar o
excluir declaração com o FUNCTAB matriz.

IGNORAR CASO Controla a distinção entre maiúsculas e minúsculas de todas as expressões regulares e operações de string.
If IGNORAR CASO tem um valor diferente de zero, então comparações de string e padrão
correspondência de regras, divisão de campo com FS e FPAT, registro separando com
RS, expressão regular correspondendo a ~ e !~, e as gensub (), gsub (),
índice(), partida(), patsplit (), dividir() e sub() todas as funções integradas ignoram
caso ao fazer operações de expressão regular. NOTA: Subscripting de matriz é
não afetados. No entanto, o um tipo() e asorti () funções são afetadas.
Portanto, se IGNORAR CASO não é igual a zero, / aB / corresponde a todas as strings
"ab", "aB", "Ab" e "AB". Tal como acontece com todas as variáveis ​​AWK, o valor inicial de
IGNORAR CASO é zero, então todas as expressões regulares e operações de string são
normalmente diferencia maiúsculas de minúsculas.

FIO Fornece controle dinâmico do --lint opção de dentro de um programa AWK.
Quando verdadeiro, gawk imprime avisos de fiapos. Quando falso, não. Quando atribuído
o valor da string "fatal", os avisos de lint tornam-se erros fatais, exatamente como
--lint = fatal. Qualquer outro valor verdadeiro apenas imprime avisos.

NF O número de campos no registro de entrada atual.

NR O número total de registros de entrada vistos até agora.

OFMT O formato de saída para números, "% .6g", por padrão.

FSO O separador de campo de saída, um espaço por padrão.

ORS O separador de registro de saída, por padrão, uma nova linha.

ANTERIOR A precisão de trabalho de números de ponto flutuante de precisão arbitrária, 53 por
padrão.

PROCINFO Os elementos desta matriz fornecem acesso a informações sobre o AWK em execução
programa. Em alguns sistemas, pode haver elementos na matriz, "grupo 1"
NFT`s "grupon" para alguns n, que é o número de grupos suplementares que
o processo tem. Use o in operador para testar esses elementos. O
os seguintes elementos têm a garantia de estar disponíveis:

PROCINFO ["egid"] O valor do getegid(2) chamada de sistema.

PROCINFO ["strftime"]
A string de formato de hora padrão para strftime ().

PROCINFO ["euid"] O valor do geteuid(2) chamada de sistema.

PROCINFO ["FS"] "FS" se o campo se dividir com FS está em vigor, "FPAT" if
divisão de campo com FPAT está em vigor, ou "FIELDWIDTHS"
se o campo se dividir com LARGURA DE CAMPO está em vigor.

PROCINFO ["identificadores"]
Um subarray, indexado pelos nomes de todos os identificadores usados
no texto do programa AWK. Os valores indicam o que
gawk sabe sobre os identificadores após terminar
analisar o programa; eles são não atualizado enquanto o
o programa é executado. Para cada identificador, o valor do
elemento é um dos seguintes:

"variedade"
O identificador é uma matriz.

"construídas em"
O identificador é uma função embutida.

"extensão"
O identificador é uma função de extensão carregada via
@carga or -l.

"escalar"
O identificador é um escalar.

"não digitado"
O identificador não foi digitado (pode ser usado como um
escalar ou matriz, gawk não sabe ainda).

"do utilizador" O identificador é uma função definida pelo usuário.

PROCINFO ["gid"] O valor do ficar idôneo(2) chamada de sistema.

PROCINFO ["pgrpid"] O ID do grupo de processos do processo atual.

PROCINFO ["pid"] O ID do processo do processo atual.

PROCINFO ["ppid"] O ID do processo pai do processo atual.

PROCINFO ["uid"] O valor do getuid(2) chamada de sistema.

PROCINFO ["classificado_in"]
Se este elemento existe em PROCINFO, então seu valor
controla a ordem em que os elementos da matriz são percorridos
in para rotações. Os valores suportados são "@ind_str_asc",
"@ind_num_asc", "@val_type_asc", "@val_str_asc",
"@val_num_asc", "@ind_str_desc", "@ind_num_desc",
"@val_type_desc", "@val_str_desc", "@val_num_desc" e
"@não triados". O valor também pode ser o nome de qualquer
função de comparação definida como segue:

função cmp_func (i1, v1, i2, v2)

onde i1 e i2 são os índices, e v1 e v2 são o
valores correspondentes dos dois elementos sendo comparados.
Deve retornar um número menor, igual ou maior
do que 0, dependendo de como os elementos da matriz devem
ser ordenado.

PROCINFO ["entrada", "TEMPO DE LER ESGOTADO"]
O tempo limite em milissegundos para leitura de dados de entrada,
onde entrada é uma string de redirecionamento ou um nome de arquivo. Um valor
de zero ou menor que zero significa nenhum tempo limite.

PROCINFO ["mpfr_version"]
A versão da biblioteca GNU MPFR usada para arbitragem
suporte de número de precisão em gawk. Esta entrada não é
presente se o suporte MPFR não for compilado em gawk.

PROCINFO ["gmp_version"]
A versão da biblioteca GNU MP usada para arbitragem
suporte de número de precisão em gawk. Esta entrada não é
presente se o suporte MPFR não for compilado em gawk.

PROCINFO ["prec_max"]
A precisão máxima suportada pela biblioteca GNU MPFR
para números de ponto flutuante de precisão arbitrária. Isto
a entrada não está presente se o suporte MPFR não estiver compilado em
gawk.

PROCINFO ["prec_min"]
A precisão mínima permitida pela biblioteca GNU MPFR para
números de ponto flutuante de precisão arbitrária. Esta entrada é
não está presente se o suporte MPFR não for compilado em gawk.

PROCINFO ["api_major"]
A versão principal da API de extensão. Esta entrada não é
presente se o carregamento de extensões dinâmicas não estiver disponível.

PROCINFO ["api_minor"]
A versão secundária da API de extensão. Esta entrada não é
presente se o carregamento de extensões dinâmicas não estiver disponível.

PROCINFO ["versão"] a versão de gawk.

MODO ARRED O modo de arredondamento a ser usado para aritmética de precisão arbitrária em números, por
omissão "N" (Modo IEEE-754 roundTiesToEven). Os valores aceitos são "N" or
"n" para roundTiesToEven, "VOCÊ" or "você" para roundTowardPositive, "D" or "d" para
rodadaParaNegativo, "Z" or "Com" para roundTowardZero, e se a sua versão do
A biblioteca GNU MPFR oferece suporte, "UMA" or "a" para roundTiesToAway.

RS O separador de registro de entrada, por padrão, uma nova linha.

RT O terminador do registro. Gawk conjuntos RT ao texto de entrada que correspondeu ao
caractere ou expressão regular especificada por RS.

RINICIAR O índice do primeiro caractere correspondido por partida(); 0 se não houver correspondência. (Isto
implica que os índices de caracteres começam em um.)

DURAÇÃO O comprimento da corda correspondido por partida(); -1 se não houver correspondência.

SUBSEP O caractere usado para separar vários subscritos em elementos da matriz, por
omissão "\ 034".

SIMTAB Uma matriz cujos índices são os nomes de todas as variáveis ​​globais atualmente definidas
e matrizes no programa. A matriz pode ser usada para acesso indireto para leitura
ou escreva o valor de uma variável:

Foo = 5
SYMTAB ["foo"] = 4
impressão Foo # impressões 4

A isarray () função pode ser usada para testar se um elemento em SIMTAB é um
variedade. Você não pode usar o excluir declaração com o SIMTAB matriz.

TEXTODOMÍNIO O domínio de texto do programa AWK; usado para encontrar as traduções localizadas
para as strings do programa.

Arrays
As matrizes são subscritas com uma expressão entre colchetes ([ e ]) Se o
expressão é uma lista de expressões (expr, expr ...) então o subscrito da matriz é uma string
consistindo na concatenação do valor (string) de cada expressão, separado pelo
valor do SUBSEP variável. Esta facilidade é usada para simular multiplamente dimensionado
matrizes. Por exemplo:

i = "UMA"; j = "B"; k = "C"
XI, j, k] = "Olá, mundo \ n "

atribui a string "Olá, mundo \ n " para o elemento da matriz x que é indexado pelo
corda "A \ 034B \ 034C". Todos os arrays em AWK são associativos, ou seja, indexados por valores de string.

O operador especial in pode ser usado para testar se uma matriz tem um índice que consiste em um
valor particular:

if (valor in variedade)
impressão array [val]

Se a matriz tiver vários subscritos, use (E, j) in ordem.

A in construção também pode ser usada em um para loop para iterar sobre todos os elementos de um
variedade. No entanto, o (E, j) in ordem construir só funciona em testes, não em para rotações.

Um elemento pode ser excluído de uma matriz usando o excluir demonstração. O excluir afirmação
também pode ser usado para deletar todo o conteúdo de um array, apenas especificando o array
nome sem subscrito.

gawk suporta verdadeiros arrays multidimensionais. Não requer que tais matrizes sejam
`` retangular '' como em C ou C ++. Por exemplo:

a [1] = 5
a [2] [1] = 6
a [2] [2] = 7

NOTA: Você pode precisar dizer gawk que um elemento de array é realmente um subarray para usar
onde gawk espera uma matriz (como no segundo argumento para dividir()) Você pode fazer
isso criando um elemento no subarray e, em seguida, excluindo-o com o excluir
declaração.

Variável Digitando E Conversão
Variáveis ​​e campos podem ser números (ponto flutuante) ou strings, ou ambos. Como o valor
de uma variável é interpretada depende de seu contexto. Se usado em uma expressão numérica,
será tratado como um número; se usado como string, será tratado como string.

Para forçar uma variável a ser tratada como um número, adicione 0 a ela; para forçá-lo a ser tratado como um
string, concatene-a com a string nula.

Variáveis ​​não inicializadas têm o valor numérico 0 e o valor da string "" (o nulo, ou
vazio, string).

Quando uma string deve ser convertida em um número, a conversão é realizada usando
Strtod(3). Um número é convertido em uma string usando o valor de CONVFMT como um formato
corda para corrida(3), com o valor numérico da variável como argumento. Contudo,
mesmo que todos os números em AWK sejam de ponto flutuante, os valores integrais são sempre convertido como
inteiros. Assim, dado

CONVFMT = "% 2.2f"
a = 12
b = a ""

a variável b tem um valor de string de "12" e não "12.00".

NOTA: Ao operar no modo POSIX (como com o --posix opção), cuidado com o local
configurações podem interferir na forma como os números decimais são tratados: o separador decimal de
os números que você está alimentando gawk deve estar em conformidade com o que sua localidade espera, seja um
vírgula (,) ou um ponto (.).

Gawk realiza comparações da seguinte forma: Se duas variáveis ​​são numéricas, elas são comparadas
numericamente. Se um valor for numérico e o outro tiver um valor de string que é um "numérico
string ”, então as comparações também são feitas numericamente. Caso contrário, o valor numérico é
convertido em uma string e uma comparação de string é realizada. Duas strings são comparadas, de
claro, como cordas.

Observe que constantes de string, como "57", É não strings numéricas, são strings
constantes. A ideia de "string numérica" ​​só se aplica a campos, Obter linha entrada, NOME DO ARQUIVO,
ARGV elementos, AMBIENTE elementos e os elementos de uma matriz criada por dividir() or
patsplit () que são strings numéricas. A ideia básica é que usuário entrada, e apenas o usuário
entrada, que parece numérica, deve ser tratada dessa forma.

Octal e Hexadecimal Constante
Você pode usar constantes octais e hexadecimais no estilo C no código-fonte do programa AWK. Por
exemplo, o valor octal 011 é igual ao decimal 9, e o valor hexadecimal 0x11 is
igual ao decimal 17.

Tanga Constante
Constantes de string em AWK são sequências de caracteres colocados entre aspas duplas (como
"valor") Dentro das cordas, certas escapar sequências são reconhecidos, como em C. São eles:

\\ Uma barra invertida literal.

\a O personagem “alerta”; geralmente o caractere ASCII BEL.

\b Retrocesso.

\f Alimentação de formulário.

\n Nova linha.

\r Retorno de carro.

\t Guia horizontal.

\v Guia vertical.

\xfeitiço dígitos
O caractere representado pela sequência de dígitos hexadecimais após o \x. Como
no ISO C, todos os dígitos hexadecimais seguintes são considerados parte do escape
seqüência. (Este recurso deve nos dizer algo sobre o design da linguagem por
comitê.) Por exemplo, "\ x1B" é o caractere ASCII ESC (escape).

\ddd O caractere representado pela sequência de 1, 2 ou 3 dígitos de dígitos octais. Por exemplo,
"\ 033" é o caractere ASCII ESC (escape).

\c O personagem literal c.

As sequências de escape também podem ser usadas dentro de expressões regulares constantes (por exemplo,
/[ \ t \ f \ n \ r \ v] / corresponde a caracteres de espaço em branco).

No modo de compatibilidade, os caracteres representados por escape octal e hexadecimal
as sequências são tratadas literalmente quando usadas em constantes de expressão regular. Por isso, / a \ 52b /
é equivalente a / a \ * b /.

PADRÕES E AÇÕES


AWK é uma linguagem orientada a linhas. O padrão vem primeiro e depois a ação. Açao
declarações são colocadas em { e }. O padrão pode estar faltando ou a ação pode
estar faltando, mas, claro, não ambos. Se o padrão estiver faltando, a ação é executada
para cada registro de entrada. Uma ação ausente é equivalente a

{ impressão }

que imprime o registro inteiro.

Os comentários começam com o # caractere e continue até o final da linha. Linhas em branco
pode ser usado para separar instruções. Normalmente, uma instrução termina com uma nova linha, no entanto,
este não é o caso das linhas que terminam em uma vírgula, {, ?, :, &&ou ||. Linhas terminando em do
or outro também têm suas declarações continuadas automaticamente na linha seguinte. Dentro
outros casos, uma linha pode ser continuada terminando com um “\”, caso em que a nova linha é
ignorado.

Várias instruções podem ser colocadas em uma linha, separando-as com um “;”. Isso se aplica á
ambas as declarações dentro da parte de ação de um par padrão-ação (o caso usual), e
às próprias instruções de ação padrão.

padrões
Os padrões AWK podem ser um dos seguintes:

INÍCIO
END
COMEÇAR ARQUIVO
FIM DO ARQUIVO
/regular expressão/
relacional expressão
de cinto de segurança && de cinto de segurança
de cinto de segurança || de cinto de segurança
de cinto de segurança ? de cinto de segurança : de cinto de segurança
(de cinto de segurança)
! de cinto de segurança
pattern1, pattern2

INÍCIO e END são dois tipos especiais de padrões que não são testados em relação à entrada.
As partes de ação de todos INÍCIO os padrões são mesclados como se todas as declarações tivessem sido
escrito em um único INÍCIO regra. Eles são executados antes que qualquer entrada seja lida.
Da mesma forma, todos os END as regras são mescladas e executadas quando toda a entrada se esgota (ou
quando um saída declaração é executada). INÍCIO e END padrões não podem ser combinados com outros
padrões em expressões de padrão. INÍCIO e END os padrões não podem ter partes de ação ausentes.

COMEÇAR ARQUIVO e FIM DO ARQUIVO são padrões especiais adicionais cujos corpos são executados antes
ler o primeiro registro de cada arquivo de entrada de linha de comando e depois de ler o último registro
de cada arquivo. Dentro de COMEÇAR ARQUIVO regra, o valor de ERRO será a string vazia se
o arquivo foi aberto com sucesso. Caso contrário, há algum problema com o arquivo e o
código deve usar próximo arquivo para pular. Se isso não for feito, gawk produz seu usual fatal
erro para arquivos que não podem ser abertos.

Escolha /regular expressão/ padrões, a instrução associada é executada para cada entrada
registro que corresponde à expressão regular. As expressões regulares são iguais às de
egrep(1), e são resumidos abaixo.

A relacional expressão pode usar qualquer um dos operadores definidos abaixo na seção sobre
ações. Geralmente, eles testam se determinados campos correspondem a certas expressões regulares.

A &&, || e ! operadores são AND lógico, OR lógico e NOT lógico, respectivamente,
como em C. Eles fazem avaliação de curto-circuito, também como em C, e são usados ​​para combinar mais
expressões de padrão primitivo. Como na maioria das línguas, os parênteses podem ser usados ​​para alterar
a ordem de avaliação.

A ?: operador é como o mesmo operador em C. Se o primeiro padrão for verdadeiro, o
O padrão usado para teste é o segundo padrão, caso contrário, é o terceiro. Apenas um de
o segundo e o terceiro padrões são avaliados.

A pattern1, pattern2 forma de uma expressão é chamada de alcance de cinto de segurança. Corresponde a tudo
registros de entrada começando com um registro que corresponda pattern1, e continuando até um registro
que corresponde pattern2, inclusive. Não se combina com nenhum outro tipo de padrão
expressão.

Regular Expressões
Expressões regulares são o tipo estendido encontrado em egrep. Eles são compostos de personagens
como se segue:

c Corresponde ao não metacaractere c.

\c Corresponde ao caractere literal c.

. Corresponde a qualquer personagem incluam nova linha.

^ Corresponde ao início de uma string.

$ Corresponde ao final de uma string.

[abc...] Uma lista de personagens: corresponde a qualquer um dos personagens abc.... Você pode incluir um
gama de caracteres, separando-os com um travessão.

[^abc...] Uma lista de caracteres negada: corresponde a qualquer caractere, exceto abc....

r1|r2 Alternação: corresponde a qualquer um r1 or r2.

r1r2 Concatenação: correspondências r1, e depois r2.

r+ Corresponde a um ou mais r's.

r* Corresponde a zero ou mais r's.

r? Corresponde a zero ou um r's.

(r) Agrupamento: jogos r.

r{n}
r{n,}
r{n,m} Um ou dois números entre colchetes denotam um intervalo expressão. Se houver
um número entre colchetes, a expressão regular precedente r é repetido n
vezes. Se houver dois números separados por vírgula, r é repetido n para m
vezes. Se houver um número seguido por uma vírgula, então r é repetido pelo menos
n vezes.

\y Corresponde à string vazia no início ou no final de uma palavra.

\B Corresponde à string vazia em uma palavra.

\< Corresponde à string vazia no início de uma palavra.

\> Corresponde à string vazia no final de uma palavra.

\s Corresponde a qualquer caractere de espaço em branco.

\S Corresponde a qualquer caractere que não seja de espaço em branco.

\w Corresponde a qualquer caractere constituinte da palavra (letra, dígito ou sublinhado).

\W Corresponde a qualquer caractere que não seja constituinte da palavra.

\` Corresponde à string vazia no início de um buffer (string).

\' Corresponde à string vazia no final de um buffer.

As sequências de escape que são válidas em constantes de string (ver Tanga Constante) são também
válido em expressões regulares.

Personagem aulas é um recurso introduzido no padrão POSIX. Uma classe de personagem é um
notação especial para descrever listas de caracteres que possuem um atributo específico, mas
onde os próprios personagens reais podem variar de país para país e / ou de
conjunto de caracteres para conjunto de caracteres. Por exemplo, a noção do que é um alfabeto
caráter difere nos EUA e na França.

Uma classe de caractere só é válida em uma expressão regular dentro os colchetes de um personagem
Lista. As classes de personagens consistem em [:, uma palavra-chave denotando a classe, e :]. O
as classes de caracteres definidas pelo padrão POSIX são:

[: alnum:] Caracteres alfanuméricos.

[:alfa:] Caracteres alfabéticos.

[:em branco:] Caracteres de espaço ou tabulação.

[: cntrl:] Personagens de controle.

[: dígito:] Caracteres numéricos.

[:gráfico:] Caracteres que podem ser impressos e visíveis. (Um espaço pode ser impresso, mas não
visível, enquanto um a são ambos.)

[:diminuir:] Caracteres alfabéticos minúsculos.

[:imprimir:] Caracteres imprimíveis (caracteres que não são caracteres de controle).

[: ponto:] Caracteres de pontuação (caracteres que não são letras, dígitos, controle
caracteres ou caracteres de espaço).

[:espaço:] Caracteres de espaço (como espaço, tabulação e alimentação de formulário, para citar alguns).

[:superior:] Caracteres alfabéticos maiúsculos.

[: xdigit:] Caracteres que são dígitos hexadecimais.

Por exemplo, antes do padrão POSIX, para combinar caracteres alfanuméricos, você teria
teve que escrever / [A-Za-z0-9] /. Se o seu conjunto de caracteres contiver outros caracteres alfabéticos,
isso não corresponderia a eles, e se seu conjunto de caracteres fosse agrupado de forma diferente do ASCII, este
pode até não corresponder aos caracteres alfanuméricos ASCII. Com as classes de caracteres POSIX,
você pode escrever / [[: alnum:]] /, e isso corresponde aos caracteres alfabéticos e numéricos em
seu conjunto de caracteres, não importa o que seja.

Duas sequências especiais adicionais podem aparecer nas listas de caracteres. Aplicam-se a não ASCII
conjuntos de caracteres, que podem ter símbolos únicos (chamados agrupamento elementos) que são
representado com mais de um personagem, bem como vários personagens que são
equivalente para agrupamento, ou classificação, finalidades. (Por exemplo, em francês, um "e" simples e um
“` ”com acento grave são equivalentes.)

Símbolos de agrupamento
Um símbolo de agrupamento é um elemento de agrupamento de vários caracteres entre [. e .].
Por exemplo, se ch é um elemento de agrupamento, então [[.CH.]] é uma expressão regular
que corresponde a este elemento de agrupamento, enquanto [CH] é uma expressão regular que
corresponde a qualquer um c or h.

Classes de Equivalência
Uma classe de equivalência é um nome específico de local para uma lista de caracteres que são
equivalente. O nome está entre [= e =]. Por exemplo, o nome e pode ser
usado para representar todos “e,” “´,” e “`. ” Nesse caso, [[= e =]] é um regular
expressão que corresponde a qualquer um dos e, e'ou e`.

Esses recursos são muito valiosos em locais que não falam inglês. As funções da biblioteca
que gawk usa para correspondência de expressão regular atualmente apenas reconhece caracteres POSIX
Aulas; eles não reconhecem símbolos de comparação ou classes de equivalência.

A \y, \B, \<, \>, \s, \S, \w, \W, \` e \' operadores são específicos para gawk; eles são
extensões baseadas em facilidades nas bibliotecas de expressões regulares GNU.

As várias opções de linha de comando controlam como gawk interpreta caracteres regulares
expressões.

Sem opções
No caso padrão, gawk fornece todas as facilidades das expressões regulares POSIX
e os operadores de expressão regular GNU descritos acima.

--posix
Apenas expressões regulares POSIX são suportadas, os operadores GNU não são especiais.
(Por exemplo, \w corresponde a um literal w).

--tradicional
UNIX tradicional awk expressões regulares são correspondidas. Os operadores GNU não são
expressões especiais e de intervalo não estão disponíveis. Personagens descritos por octal
e as sequências de escape hexadecimais são tratadas literalmente, mesmo que representem
metacaracteres de expressão regular.

--re-intervalo
Permitir expressões de intervalo em expressões regulares, mesmo que --tradicional foi
forneceu.

Opções
As declarações de ação são colocadas entre colchetes, { e }. As declarações de ação consistem no usual
declarações de atribuição, condicionais e de loop encontradas na maioria das linguagens. Os operadores,
instruções de controle e instruções de entrada / saída disponíveis são padronizadas após aquelas em C.

Operadores
Os operadores em AWK, em ordem decrescente de precedência, são:

(...) Agrupamento

$ Referência de campo.

++ -- Aumente e diminua, prefixo e pós-fixados.

^ Exponenciação (** também pode ser usado, e ** = para o operador de atribuição).

+ - ! Mais unário, menos unário e negação lógica.

* / % Multiplicação, divisão e módulo.

+ - Adição e subtração.

espaço Concatenação de strings.

| |& I / O canalizado para Obter linha, impressão e printf.

< > <= >= != ==
Os operadores relacionais regulares.

~ !~ Correspondência de expressão regular, correspondência negada. NOTA: Não use um regular constante
expressão (/ foo /) no lado esquerdo de um ~ or !~. Use apenas um no
lado direito. A expressão / foo / ~ exp tem o mesmo significado que (($ 0 ~
/ foo /) ~ exp). Isso geralmente é não o que você quer.

in Associação de matriz.

&& E lógico.

|| OR lógico.

?: A expressão condicional C. Isso tem a forma expr1 ? expr2 : expr3. Se
expr1 é verdade, o valor da expressão é expr2, caso contrário, é expr3.
Apenas um de expr2 e expr3 é avaliado.

= += -= *= /= %= ^=
Atribuição. Ambas as atribuições absolutas (var = valor) e atribuição de operador
(os outros formulários) são suportados.

Control Demonstrações
As declarações de controle são as seguintes:

if (condição) afirmação [ outro afirmação ]
enquanto (condição) afirmação
do afirmação enquanto (condição)
para (expr1; expr2; expr3) afirmação
para (var in ordem) afirmação
quebrar
continuar
excluir ordem[índice]
excluir ordem
saída [ expressão ]
{ declarações }
interruptor (expressão) {
casas valor|regex : afirmação
...
[ default: afirmação ]
}

I / O Demonstrações
As instruções de entrada / saída são as seguintes:

fechar(lima [, como]) Fechar arquivo, tubo ou co-processo. O opcional como só deveria ser
usado ao fechar uma extremidade de um tubo bidirecional para um co-processo. Isto
deve ser um valor de string, também "para" or "a partir de".

Obter linha Conjunto $0 do próximo registro de entrada; definir NF, NR, FNR, RT.

Obter linha <lima Conjunto $0 do próximo registro de lima; definir NF, RT.

Obter linha var Conjunto var do próximo registro de entrada; definir NR, FNR, RT.

Obter linha var <lima Conjunto var do próximo registro de lima, RT.

comando | Obter linha [var]
Execute comando canalizando a saída para $0 or var, como acima, e
RT.

comando |& Obter linha [var]
Execute comando como um co-processo, canalizando a saída para $0 or var,
como acima, e RT. Co-processos são um gawk extensão. (comando pode
também ser um soquete. Veja a subseção Destaque Envie o Names, abaixo.)

Próximo Pare de processar o registro de entrada atual. O próximo registro de entrada é
a leitura e o processamento são reiniciados com o primeiro padrão no AWK
programa. Ao chegar ao final dos dados de entrada, gawk executa qualquer
END as regras).

próximo arquivo Pare de processar o arquivo de entrada atual. O próximo registro de entrada lido
vem do próximo arquivo de entrada. NOME DO ARQUIVO e ARGINDO são atualizados,
FNR é redefinido para 1 e o processamento é reiniciado com o primeiro padrão
no programa AWK. Ao chegar ao final dos dados de entrada, gawk
executa qualquer END as regras).

impressão Imprima o registro atual. O registro de saída é encerrado com o
valor de ORS.

impressão lista expr Expressões de impressão. Cada expressão é separada pelo valor de
FSO. O registro de saída é encerrado com o valor de ORS.

impressão lista expr >lima Imprimir expressões em lima. Cada expressão é separada pelo
valor de FSO. O registro de saída é encerrado com o valor de
ORS.

printf fmt, lista expr Formate e imprima. Ver A printf Declaração, Abaixo.

printf fmt, lista expr >lima
Formate e imprima em lima.

sistema(linha cmd) Execute o comando linha cmde retorne o status de saída. (Isso pode
não está disponível em sistemas não POSIX.)

fflush ([lima]) Libere todos os buffers associados ao arquivo de saída ou canal aberto lima.
If lima está faltando ou se for a string nula, então libere tudo aberto
arquivos de saída e canais.

Redirecionamentos de saída adicionais são permitidos para impressão e printf.

impressão ... >> lima
Acrescenta saída ao lima.

impressão ... | comando
Escreve em um cano.

impressão ... |& comando
Envia dados para um co-processo ou socket. (Veja também a subseção Destaque Envie o Names,
abaixo.)

A Obter linha o comando retorna 1 em caso de sucesso, 0 no final do arquivo e -1 em caso de erro. Sobre um
erro, ERRO é definido como uma string que descreve o problema.

NOTA: A falha na abertura de um soquete bidirecional resulta em um erro não fatal sendo retornado para
a função de chamada. Se estiver usando um tubo, co-processo ou soquete para Obter linha, Ou a partir impressão or
printf dentro de um loop, você devo usar fechar() para criar novas instâncias do comando ou
socket. AWK não fecha automaticamente tubos, soquetes ou coprocessos quando eles retornam
EOF.

A printf Declaração
As versões AWK do printf declaração e sprintf () função (veja abaixo) aceitar o
seguintes formatos de especificação de conversão:

%c Um único personagem. Se o argumento usado para %c é numérico, é tratado como um
personagem e impresso. Caso contrário, o argumento é considerado uma string, e o
apenas o primeiro caractere dessa string é impresso.

%d, %i Um número decimal (a parte inteira).

%e, %E Um número de ponto flutuante da forma [-]d.dddddde[+-]dd. O %E formato usa E
em vez de e.

%f, %F Um número de ponto flutuante da forma [-]ddd.dddddd. Se a biblioteca do sistema suportar
lo, %F também está disponível. Isto é como %f, mas usa letras maiúsculas para especiais
Valores “não é um número” e “infinito”. Se %F não está disponível, gawk usos %f.

%g, %G Use %e or %f conversão, o que for mais curto, com zeros não significativos
suprimido. o %G formato usa %E em vez de %e.

%o Um número octal sem sinal (também um inteiro).

%u Um número decimal sem sinal (novamente, um inteiro).

%s Uma sequência de caracteres.

%x, %X Um número hexadecimal sem sinal (um inteiro). O %X formato usa ABCDEF em vez de
abcdef.

%% Uma única % personagem; nenhum argumento é convertido.

Opcional, parâmetros adicionais podem estar entre os % e a carta de controle:

contar$ Use o contar'o argumento neste ponto da formatação. Isso é chamado de
posicional especificador e se destina principalmente ao uso em versões traduzidas de
strings de formato, não no texto original de um programa AWK. É um gawk
extensão.

- A expressão deve ser justificada à esquerda em seu campo.

espaço Para conversões numéricas, prefixe os valores positivos com um espaço e os valores negativos
com um sinal de menos.

+ O sinal de mais, usado antes do modificador de largura (veja abaixo), diz para sempre fornecer um
sinal para conversões numéricas, mesmo se os dados a serem formatados forem positivos. O +
substitui o modificador de espaço.

# Use uma “forma alternativa” para certas cartas de controle. Por %o, forneça um líder
zero. Por %x e %X, forneça um líder 0x or 0X para um resultado diferente de zero. Por %e, %E,
%f e %F, o resultado sempre contém um ponto decimal. Por %g e %G, Seguindo
zeros não são removidos do resultado.

0 Uma liderança 0 (zero) atua como um sinalizador, que indica que a saída deve ser preenchida com
zeros em vez de espaços. Isso se aplica apenas aos formatos de saída numéricos. Isto
sinalizador só tem efeito quando a largura do campo é maior do que o valor a ser impresso.

' Um caractere de aspas simples instrui gawk para inserir o separador de milhares do local
caractere em números decimais, e também para usar o ponto decimal do local
personagem com formatos de ponto flutuante. Isso requer suporte local correto no
Biblioteca C e na definição do local atual.

largura O campo deve ser preenchido com essa largura. O campo é normalmente preenchido com
espaços. Com o 0 sinalizador, ele é preenchido com zeros.

.preco Um número que especifica a precisão a ser usada na impressão. Para o %e, %E, %f e
%F, formatos, isso especifica o número de dígitos que você deseja imprimir à direita de
o ponto decimal. Para o %g e %G formatos, ele especifica o número máximo de
Dígitos significantes. Para o %d, %i, %o, %u, %x e %X formatos, ele especifica o
número mínimo de dígitos para imprimir. Por %s, especifica o número máximo de
caracteres da string que deve ser impressa.

A dinamica largura e preco capacidades do ISO C printf () rotinas são suportadas. UMA *
no lugar de qualquer largura or preco especificações faz com que seus valores sejam retirados de
a lista de argumentos para printf or sprintf (). Para usar um especificador posicional com uma dinâmica
largura ou precisão, forneça o contar$ depois de * na string de formato. Por exemplo,
"% 3 $ * 2 $. * 1 $ s".

Destaque Envie o Names
Ao fazer o redirecionamento de I / O de qualquer impressão or printf em um arquivo, ou via Obter linha a partir de um
arquivo, gawk reconhece certos nomes de arquivos especiais internamente. Esses nomes de arquivo permitem acesso
para abrir descritores de arquivo herdados de gawko processo pai de (geralmente o shell). Esses
nomes de arquivo também podem ser usados ​​na linha de comando para nomear arquivos de dados. Os nomes dos arquivos são:

- A entrada padrão.

/ dev / stdin A entrada padrão.

/ dev / stdout A saída padrão.

/ dev / stderr A saída de erro padrão.

/ dev / fd /n O arquivo associado ao descritor de arquivo aberto n.

Eles são particularmente úteis para mensagens de erro. Por exemplo:

impressão "Você soprou isto!" > "/ dev / stderr"

Considerando que, de outra forma, você teria que usar

impressão "Você soprou isto!" | "gato 1> e 2 "

Os seguintes nomes de arquivos especiais podem ser usados ​​com o |& operador de co-processo para criar
Conexões de rede TCP / IP:

/ inet / tcp /lportar/anfitrião/relatório
/ inet4 / tcp /lportar/anfitrião/relatório
/ inet6 / tcp /lportar/anfitrião/relatório
Arquivos para uma conexão TCP / IP na porta local lportar para host remoto anfitrião no remoto
porta relatório. Use uma porta de 0 para que o sistema escolha uma porta. Usar / inet4 para forçar
uma conexão IPv4, e / inet6 para forçar uma conexão IPv6. Plano / inet utiliza o
padrão do sistema (provavelmente IPv4).

/ inet / udp /lportar/anfitrião/relatório
/ inet4 / udp /lportar/anfitrião/relatório
/ inet6 / udp /lportar/anfitrião/relatório
Semelhante, mas use UDP / IP em vez de TCP / IP.

Numérico Funções
AWK tem as seguintes funções aritméticas integradas:

atan2 (y, x) Retorne o arco tangente de y / x em radianos.

cos (expr) Retorne o cosseno de expr, que está em radianos.

exp (expr) A função exponencial.

int (expr) Truncar para um inteiro.

registro(expr) A função de logaritmo natural.

rand () Retorne um número aleatório N, entre 0 e 1, de modo que 0 ≤ N <1.

pecado(expr) Retorne o seno de expr, que está em radianos.

sqrt (expr) Retorne a raiz quadrada de expr.

srand ([expr]) Use expr como a nova semente para o gerador de números aleatórios. Se não expr is
fornecido, use a hora do dia. Retorne a semente anterior para o aleatório
gerador de números.

Tanga Funções
Gawk tem as seguintes funções de string integradas:

um tipo(s [, d [, como]]) Retorna o número de elementos na matriz de origem s. Classifique o
conteúdo de s utilização gawkregras normais de comparação de valores, e
substitua os índices dos valores classificados s com sequencial
inteiros começando com 1. Se a matriz de destino opcional d is
especificado, primeira duplicata s para dentro d, e então classificar d, Deixe o
índices da matriz de origem s inalterado. A string opcional como
controla a direção e o modo de comparação. Valores válidos para
como alguma das strings é válida para PROCINFO ["classificado_in"]. Ele
também pode ser o nome de uma função de comparação definida pelo usuário como
descrito em PROCINFO ["classificado_in"].

asorti (s [, d [, como]])
Retorna o número de elementos na matriz de origem s. O comportamento
é o mesmo que o de um tipo(), exceto que a matriz índices e guarante que os mesmos estão
usado para classificação, não os valores da matriz. Quando feito, a matriz é
indexados numericamente, e os valores são aqueles do original
índices. Os valores originais são perdidos; portanto, forneça um segundo
array se você deseja preservar o original. O propósito do
string opcional como é o mesmo descrito em um tipo() acima.

gensub (r, s, h [, t]) Pesquise a string de destino t para correspondências com a expressão regular
r. Se h é uma string começando com g or G, em seguida, substitua todos
jogos de r com s. De outra forma, h é um número que indica qual
partida de r para substituir. Se t não é fornecido, use $0 ao invés.
Dentro do texto de substituição s, a sequência \n, Onde n é um dígito
de 1 a 9, pode ser usado para indicar apenas o texto que correspondeu
que o n'ésima subexpressão entre parênteses. A sequência \0 representa
todo o texto correspondente, assim como o personagem &. Ao contrário sub()
e gsub (), a string modificada é retornada como resultado do
função, e a string de destino original é não alterado.

gsub (r, s [, t]) Para cada substring correspondente à expressão regular r na corda
t, substitua a corda s, e retornar o número de
substituições. Se t não é fornecido, use $0. Um & no
o texto de substituição é substituído pelo texto que foi realmente
coincide. Usar \& para obter um literal &. (Deve ser digitado como
"\\ &"; Vejo GAWK: Eficaz AWK Programação para uma discussão mais completa
das regras para &e barras invertidas no texto de substituição de
sub(), gsub () e gensub ().)

índice(s, t) Retorna o índice da string t na corda sou 0 se t não é
presente. (Isso implica que os índices de caracteres começam em um.)
é um erro fatal usar uma constante regexp para t.

comprimento([s]) Retorna o comprimento da string s, ou o comprimento de $0 if s não é
fornecido. Como uma extensão não padrão, com um argumento de matriz,
comprimento() retorna o número de elementos na matriz.

partida(s, r [, a]) Retorne a posição em s onde a expressão regular r ocorre, ou
0 se r não está presente e defina os valores de RINICIAR e DURAÇÃO.
Observe que a ordem do argumento é a mesma que para o ~ operador:
str ~ re. Se matriz a é fornecido, a é apagado e, em seguida, os elementos
1 a n são preenchidos com as porções de s que combinam com o
subexpressão entre parênteses correspondente em r. O 0º elemento
of a contém a porção de s correspondido por todo o regular
expressão r. Subscritos a[n, "começar"] e a[n, "comprimento"]
fornecer o índice inicial na string e comprimento respectivamente,
de cada substring correspondente.

patsplit (s, a [, r [, setembro]])
Divida a corda s na matriz a e a matriz de separadores setembro
na expressão regular re retorna o número de campos.
Os valores do elemento são as porções de s que combinou r. O valor de
seps [i] é o separador que apareceu na frente de a[i+ 1]. Se r
é omitido, FPAT é usado em seu lugar. As matrizes a e setembro e guarante que os mesmos estão
limpo primeiro. A divisão se comporta de forma idêntica à divisão de campo
com FPAT, descrito acima.

dividir(s, a [, r [, setembro]])
Divida a corda s na matriz a e a matriz de separadores setembro
na expressão regular re retorna o número de campos. Se
r é omitido, FS é usado em seu lugar. As matrizes a e setembro e guarante que os mesmos estão
limpo primeiro. seps [i] é o separador de campo correspondido por r
entre a[i] e a[i+ 1]. Se r é um único espaço, então levando
espaço em branco em s vai para o elemento extra da matriz seps [0] e
o espaço em branco à direita vai para o elemento extra da matriz seps [n],
onde n é o valor de retorno de dividir(s, a, r, setembro). Dividindo
se comporta de forma idêntica à divisão de campo, descrita acima.

sprintf (fmt, lista expr) Impressão lista expr de acordo com fmte retorne a string resultante.

strtonum (str) Examinar stre retornar seu valor numérico. Se str começa com um
principal 0, trate-o como um número octal. Se str começa com um
principal 0x or 0X, trate-o como um número hexadecimal. De outra forma,
suponha que seja um número decimal.

sub(r, s [, t]) Assim como gsub (), mas substitua apenas a primeira substring correspondente.

substr (s, i [, n]) Devolva no máximo n- substring de caractere de s Começando às i. Se n
é omitido, use o resto de s.

abaixar(str) Retorne uma cópia da string str, com todos os caracteres maiúsculos
in str traduzidos para seus correspondentes em minúsculas.
Os caracteres não alfabéticos permanecem inalterados.

toupper (str) Retorne uma cópia da string str, com todos os caracteres minúsculos
in str traduzidos para seus correspondentes em maiúsculas.
Os caracteres não alfabéticos permanecem inalterados.

Gawk está ciente de multibyte. Isso significa que índice(), comprimento(), substr () e partida() todo o trabalho
em termos de caracteres, não bytes.

Horário Funções
Uma vez que um dos principais usos dos programas AWK é o processamento de arquivos de registro que contêm tempo
informações do selo, gawk fornece as seguintes funções para obter carimbos de data / hora e
formatando-os.

mktime (Dataspec)
torre Dataspec em um carimbo de data / hora da mesma forma que foi retornado por Systime () e
retorna o resultado. O Dataspec é uma string da forma AAAA MM DD HH MM SS [
DST]. O conteúdo da string são seis ou sete números que representam
respectivamente o ano inteiro incluindo o século, o mês de 1 a 12, o dia de
o mês de 1 a 31, a hora do dia de 0 a 23, o minuto de 0 a
59, o segundo de 0 a 60 e um sinalizador de horário de verão opcional. Os valores
desses números não precisam estar dentro dos intervalos especificados; por exemplo, uma hora
de -1 significa 1 hora antes da meia-noite. O calendário gregoriano de origem zero é
assumido, com o ano 0 precedendo o ano 1 e o ano -1 precedendo o ano 0. O tempo é
presume-se que esteja no fuso horário local. Se o sinalizador de horário de verão for positivo,
a hora é considerada o horário de verão; se zero, o tempo é assumido como
ser hora padrão; e se negativo (o padrão), mktime () tentativas de determinar
se o horário de verão está em vigor para o horário especificado. Se Dataspec
não contém elementos suficientes ou se o tempo resultante está fora do intervalo,
mktime () retorna -1.

strftime ([formato [, timestamp[, utc-bandeira]]])
Formato timestamp de acordo com a especificação em formato. Se utc-bandeira is
presente e é diferente de zero ou não nulo, o resultado está em UTC, caso contrário, o resultado
está no horário local. O timestamp deve ser do mesmo formato que o devolvido por
Systime (). Se timestamp está faltando, a hora atual do dia é usada. Se formato
está faltando, um formato padrão equivalente à saída de dados(1) é usado. O
o formato padrão está disponível em PROCINFO ["strftime"]. Veja a especificação para
que o strftime () função em ISO C para as conversões de formato que são garantidas
estar disponível.

Systime () Retorna a hora atual do dia como o número de segundos desde a época
(1970-01-01 00:00:00 UTC em sistemas POSIX).

Pouco Manipulações Funções
Gawk fornece as seguintes funções de manipulação de bits. Eles funcionam convertendo
valores de ponto flutuante de precisão para uintmax_t inteiros, fazendo a operação, e então
convertendo o resultado de volta ao ponto flutuante. As funções são:

e(v1, v2 [, ...]) Retorne o AND bit a bit dos valores fornecidos na lista de argumentos.
Deve haver pelo menos dois.

compl (onda) Retorne o complemento bit a bit de onda.

lshift (onda, contar) Devolve o valor de onda, deslocado para a esquerda por contar bits.

ou(v1, v2 [, ...]) Retorne o OR bit a bit dos valores fornecidos na lista de argumentos.
Deve haver pelo menos dois.

rshift (onda, contar) Devolve o valor de onda, deslocado para a direita por contar bits.

xor (v1, v2 [, ...]) Retorna o XOR bit a bit dos valores fornecidos na lista de argumentos.
Deve haver pelo menos dois.

Formato função
A função a seguir deve ser usada com matrizes multidimensionais.

isarray (x)
Retorna verdadeiro se x é uma matriz, caso contrário, é falso.

Internacionalização Funções
As funções a seguir podem ser usadas em seu programa AWK para traduzir strings
em tempo de execução. Para maiores detalhes, veja GAWK: Eficaz AWK Programação.

bindtextdomain (anuário [, domínio])
Especifique o diretório onde gawk procura o .gmo arquivos, caso não o façam ou
não pode ser colocado nas localizações `` padrão '' (por exemplo, durante o teste). Retorna
o diretório onde domínio é `` vinculado ''.
O padrão domínio é o valor de TEXTODOMÍNIO. Se anuário é a string nula
(""), então bindtextdomain () retorna a ligação atual para o dado domínio.

dcgettext (corda [, domínio [, categoria]])
Devolva a tradução de corda no domínio de texto domínio para categoria de localidade
categoria. O valor padrão para domínio é o valor atual de TEXTODOMÍNIO. O
valor padrão para categoria is "LC_MESSAGES".
Se você fornecer um valor para categoria, deve ser uma string igual a uma das conhecidas
categorias de local descritas em GAWK: Eficaz AWK Programação. Você também deve
fornecer um domínio de texto. Usar TEXTODOMÍNIO se você deseja usar o domínio atual.

dcngettext (string1, string2, número [, domínio [, categoria]])
Retorne a forma plural usada para número da tradução de string1 e string2 in
domínio de texto domínio para categoria de localidade categoria. O valor padrão para domínio is
o valor atual de TEXTODOMÍNIO. O valor padrão para categoria is "LC_MESSAGES".
Se você fornecer um valor para categoria, deve ser uma string igual a uma das conhecidas
categorias de local descritas em GAWK: Eficaz AWK Programação. Você também deve
fornecer um domínio de texto. Usar TEXTODOMÍNIO se você deseja usar o domínio atual.

USUÁRIO DEFINIDO FUNÇÕES


As funções no AWK são definidas da seguinte forma:

função nome(parâmetro Lista) { declarações }

As funções são executadas quando são chamadas de dentro de expressões em padrões ou
ações. Os parâmetros reais fornecidos na chamada de função são usados ​​para instanciar o
parâmetros formais declarados na função. Arrays são passados ​​por referência, outros
variáveis ​​são passadas por valor.

Uma vez que as funções não faziam originalmente parte da linguagem AWK, a provisão para local
variáveis ​​é um tanto desajeitado: elas são declaradas como parâmetros extras na lista de parâmetros.
A convenção é separar as variáveis ​​locais dos parâmetros reais por espaços extras no
lista de parâmetros. Por exemplo:

função f (p, q, a, b) # a e b e guarante que os mesmos estão local
{
...
}

/abc/ { ... ; f (1, 2) ; ... }

O parêntese esquerdo em uma chamada de função é necessário para seguir imediatamente a função
nome, sem qualquer espaço em branco intermediário. Isso evita uma ambigüidade sintática com o
operador de concatenação. Esta restrição não se aplica às funções integradas listadas
acima.

As funções podem chamar umas às outras e podem ser recursivas. Parâmetros de função usados ​​como locais
as variáveis ​​são inicializadas com a string nula e o número zero na chamada da função.

Use retorno expr para retornar um valor de uma função. O valor de retorno é indefinido se não
valor é fornecido, ou se a função retornar "caindo" no final.

Como um gawk extensão, as funções podem ser chamadas indiretamente. Para fazer isso, atribua o nome de
a função a ser chamada, como uma string, a uma variável. Em seguida, use a variável como se ela
eram o nome de uma função, prefixado com um @ assinar, assim:
função myfunc ()
{
impressão "myfunc chamado"
...
}

{ ...
the_func = "myfunc"
@the_func () # chamada NFT`s the_func para minhafunção
...
}
A partir da versão 4.1.2, isso funciona com funções definidas pelo usuário, funções integradas e
funções de extensão.

If --lint Tem sido fornecido, gawk avisa sobre chamadas para funções indefinidas no momento da análise,
em vez de em tempo de execução. Chamar uma função indefinida em tempo de execução é um erro fatal.

A palavra função pode ser usado no lugar de função, embora esteja obsoleto.

DINAMICAMENTE CARREGANDO NOVAS FUNÇÕES


Você pode adicionar dinamicamente novas funções integradas ao gawk intérprete com o
@carga declaração. Os detalhes completos estão além do escopo desta página do manual; Vejo GAWK:
Eficaz AWK Programação.

SINAIS


A gawk o profiler aceita dois sinais. SIGUSR1 faz com que ele descarte um perfil e uma função
pilha de chamadas para o arquivo de perfil, que é awkprof.out, ou qualquer arquivo que tenha o nome
com o --perfil opção. Em seguida, ele continua a funcionar. SIGA causas gawk para despejar o
pilha de chamadas de perfil e função e, em seguida, saia.

INTERNACIONALIZAÇÃO


Constantes de string são sequências de caracteres entre aspas duplas. Em não inglês
ambientes de fala, é possível marcar strings no programa AWK como exigindo
tradução para a língua natural local. Essas sequências são marcadas no programa AWK com
um sublinhado inicial (“_”). Por exemplo,

gawk 'COMEÇAR { impressão "Olá, mundo" }'

sempre imprime Olá, mundo. Mas,

gawk 'COMEÇAR { impressão _"Olá, mundo" }'

pode imprimir Olá, monde na França.

Existem várias etapas envolvidas na produção e execução de um programa AWK localizável.

1. Adicione INÍCIO ação para atribuir um valor ao TEXTODOMÍNIO variável para definir o domínio do texto
a um nome associado ao seu programa:

INÍCIO { TEXTODOMÍNIO = "myprog" }

Isso permite gawk para encontrar o .gmo arquivo associado ao seu programa. Sem isso
degrau, gawk utiliza o mensagens domínio de texto, que provavelmente não contém traduções
para o seu programa.

2. Marque todas as strings que devem ser traduzidas com sublinhados à esquerda.

3. Se necessário, use o dcgettext () e / ou bindtextdomain () funções em seu programa,
como apropriado.

4. Correr gawk --gen-pot -f meuprog.awk > meuprog.pot para gerar um .Panela arquivo para o seu
.

5. Forneça as traduções adequadas e construa e instale os correspondentes .gmo arquivos.

Os recursos de internacionalização são descritos em detalhes completos em GAWK: Eficaz AWK
Programação.

POSIX COMPATIBILIDADE


Um objetivo principal para gawk é a compatibilidade com o padrão POSIX, bem como com o
última versão de Brian Kernighan's awk. Para este fim, gawk incorpora o seguinte
recursos visíveis ao usuário que não são descritos no livro AWK, mas fazem parte do Brian
A versão de Kernighan de awk, e estão no padrão POSIX.

O livro indica que a atribuição de variáveis ​​de linha de comando acontece quando awk seria de outra forma
abra o argumento como um arquivo, que está após o INÍCIO regra é executada. No entanto, em
implementações anteriores, quando tal atribuição apareceu antes de quaisquer nomes de arquivo, o
atribuição aconteceria antes que o INÍCIO regra foi executada. Os aplicativos passaram a depender de
este “recurso”. Quando awk foi alterado para corresponder à sua documentação, o -v opção para
atribuição de variáveis ​​antes da execução do programa foi adicionado para acomodar aplicativos que
dependia do antigo comportamento. (Este recurso foi acordado por ambos os
Laboratórios e os desenvolvedores GNU.)

Ao processar argumentos, gawk usa a opção especial “-” para sinalizar o fim de
argumentos. No modo de compatibilidade, ele avisa sobre, mas ignora as opções indefinidas.
Em operação normal, esses argumentos são transmitidos ao programa AWK para que ele os processe.

O livro AWK não define o valor de retorno de srand (). O padrão POSIX tem
retornar a semente que estava usando, para permitir o controle de sequências de números aleatórios.
portanto srand () in gawk também retorna sua semente atual.

Outros novos recursos são: O uso de vários -f opções (de MKS awk); a AMBIENTE variedade;
que o \a e \v sequências de escape (feitas originalmente em gawk e alimentado de volta no sino
Versão Laboratories); a abaixar() e toupper () funções integradas (do Bell
Versão Laboratories); e as especificações de conversão ISO C em printf (feito primeiro em
a versão Bell Laboratories).

HISTÓRICO CARATERÍSTICAS


Há um recurso de implementações históricas de AWK que gawk suporta: é possível
chamar o comprimento() função embutida não apenas sem argumento, mas mesmo sem
parênteses! Por isso,

a = comprimento # Santo Algol 60, Homem Morcego!

é o mesmo que qualquer um de

a = comprimento()
a = comprimento ($ 0)

Usar esse recurso é uma prática ruim e gawk emite um aviso sobre seu uso se --lint is
especificado na linha de comando.

GNU EXTENSÕES


Gawk tem um número muito grande de extensões para POSIX awk. Eles são descritos neste
seção. Todas as extensões descritas aqui podem ser desativadas invocando gawk com o
--tradicional or --posix opções.

Os seguintes recursos de gawk não estão disponíveis em POSIX awk.

· Nenhuma busca de caminho é realizada para arquivos nomeados através do -f opção. Portanto, o AWKPATHGenericName
a variável de ambiente não é especial.

· Não há facilidade para fazer a inclusão de arquivo (gawk's @incluir mecanismo).

· Não há facilidade para adicionar dinamicamente novas funções escritas em C (gawk's @carga
mecanismo).

· O \x sequência de fuga. (Desativado com --posix.)

· A capacidade de continuar as linhas após ? e :. (Desativado com --posix.)

· Constantes octais e hexadecimais em programas AWK.

· O ARGINDO, MODO BIN, ERRO, FIO, RT e TEXTODOMÍNIO variáveis ​​não são especiais.

· O IGNORAR CASO variável e seus efeitos colaterais não estão disponíveis.

· O LARGURA DE CAMPO divisão de campo de largura variável e fixa.

· O FPAT variável e divisão de campo com base em valores de campo.

· O PROCINFO array não está disponível.

· O uso de RS como uma expressão regular.

· Os nomes de arquivos especiais disponíveis para redirecionamento de E / S não são reconhecidos.

· O |& operador para a criação de co-processos.

· O COMEÇAR ARQUIVO e FIM DO ARQUIVO padrões especiais não estão disponíveis.

· A capacidade de dividir caracteres individuais usando a string nula como o valor de FS,
e como o terceiro argumento para dividir().

· Um quarto argumento opcional para dividir() para receber os textos separadores.

· O segundo argumento opcional para o fechar() função.

· O terceiro argumento opcional para o partida() função.

· A capacidade de usar especificadores posicionais com printf e sprintf ().

· A capacidade de passar uma matriz para comprimento().

· O e(), um tipo(), asorti (), bindtextdomain (), compl (), dcgettext (), dcngettext (),
gensub (), lshift (), mktime (), ou(), patsplit (), rshift (), strftime (), strtonum (),
Systime () e xor () funções.

· Strings localizáveis.

O livro AWK não define o valor de retorno do fechar() função. Gawk's fechar()
retorna o valor de fperto(3) ou perto(3), ao fechar um arquivo de saída ou canal,
respectivamente. Ele retorna o status de saída do processo ao fechar um canal de entrada. O
o valor de retorno é -1 se o arquivo nomeado, canal ou co-processo não foi aberto com um
redirecionamento.

Quando gawk é invocado com o --tradicional opção, se o fs argumento para o -F opção
“T”, então FS é definido para o caractere de tabulação. Observe que digitar gawk -F \ t ... simplesmente causa
o shell para citar o "t" e não passa "\ t" para o -F opção. Uma vez que este é um
caso especial bastante feio, não é o comportamento padrão. Este comportamento também não
ocorrer se --posix foi especificado. Para realmente obter um caractere de tabulação como o campo
separador, é melhor usar aspas simples: gawk -F '\ t' ....

MEIO AMBIENTE VARIÁVEIS


A AWKPATHGenericName variável de ambiente pode ser usada para fornecer uma lista de diretórios que gawk
pesquisas ao procurar arquivos nomeados por meio do -f, --Arquivo, -i e --incluir opções. Se
a pesquisa inicial falha, o caminho é pesquisado novamente após anexar .awk ao nome do arquivo.

A AWKLIBPATHGenericName variável de ambiente pode ser usada para fornecer uma lista de diretórios que gawk
pesquisas ao procurar arquivos nomeados por meio do -l e --carga opções.

A GAWK_READ_TIMEOUT variável de ambiente pode ser usada para especificar um tempo limite em
milissegundos para ler a entrada de um terminal, tubo ou comunicação bidirecional, incluindo
tomadas.

Para conexão a um host remoto via socket, GAWK_SOCK_RETRIES controla o número de
novas tentativas e GAWK_MSEC_SLEEP e o intervalo entre as tentativas. O intervalo está em
milissegundos. Em sistemas que não suportam você dorme(3), o valor é arredondado para um
número integral de segundos.

If POSIXLY_CORRECT existe no meio ambiente, então gawk se comporta exatamente como se --posix tinha
foi especificado na linha de comando. Se --lint foi especificado, gawk emite um aviso
mensagem nesse sentido.

SAIR STATUS


Se o saída declaração é usada com um valor, então gawk sai com o valor numérico dado
a ele.

Caso contrário, se não houver problemas durante a execução, gawk sai com o valor de C
constante EXIT_SUCCESS. Geralmente é zero.

Se ocorrer um erro, gawk sai com o valor da constante C EXIT_FAILURE. Isto é
geralmente um.

If gawk sai por causa de um erro fatal, o status de saída é 2. Em sistemas não POSIX, isso
valor pode ser mapeado para EXIT_FAILURE.

VERSÃO INFORMAÇÃO


Esta página de manual documenta gawk, versão 4.1.

AUTORES


A versão original do UNIX awk foi projetado e implementado por Alfred Aho, Peter
Weinberger e Brian Kernighan, dos Laboratórios Bell. Brian Kernighan continua a
mantê-lo e aprimorá-lo.

Paul Rubin e Jay Fenlason, da Free Software Foundation, escreveram gawk, para ser compatível
com a versão original de awk distribuído na Sétima Edição UNIX. John Woods
contribuiu com uma série de correções de bugs. David Trueman, com contribuições de Arnold Robbins,
moldadas gawk compatível com a nova versão do UNIX awk. Arnold Robbins é o atual
mantenedor.

See GAWK: Eficaz AWK Programação para obter uma lista completa dos contribuintes de gawk ea sua
documentação.

veja a README arquivo no gawk distribuição de informações atualizadas sobre mantenedores
e quais portas são atualmente suportadas.

ERRO RELATÓRIOS


Se você encontrar um bug em gawk, por favor envie e-mail para [email protegido]. Por favor
incluem seu sistema operacional e sua revisão, a versão do gawk (A partir de gawk --versão),
qual compilador C você usou para compilá-lo, e um programa de teste e dados que são tão pequenos quanto
possível para reproduzir o problema.

Antes de enviar um relatório de bug, faça o seguinte. Primeiro, verifique se você tem
a última versão de gawk. Muitos bugs (geralmente sutis) são corrigidos a cada versão,
e se o seu estiver desatualizado, o problema pode já ter sido resolvido. Segundo, por favor veja
se definir a variável de ambiente LC_ALL para LC_ALL = C faz com que as coisas se comportem como você
esperar. Nesse caso, é um problema de localidade e pode ou não ser realmente um bug. Enfim por favor
leia esta página de manual e o manual de referência com atenção para ter certeza de que o que você pensa é um
bug realmente é, em vez de apenas uma peculiaridade da linguagem.

Faça o que fizer, faça NÃO postar um relatório de bug em comp.lang.awk. Enquanto o gawk desenvolvedores
ocasionalmente lê este grupo de notícias, postando relatórios de bug - há uma maneira não confiável de relatar
insetos. Em vez disso, use os endereços de correio eletrônico fornecidos acima. Mesmo.

Se você estiver usando um sistema GNU / Linux ou baseado em BSD, você pode querer enviar um relatório de bug para
o fornecedor de sua distribuição. Tudo bem, mas por favor envie uma cópia para o oficial
endereço de e-mail também, uma vez que não há garantia de que o relatório de bug será encaminhado para
que o gawk mantenedor.

Use gawk online usando serviços onworks.net


Servidores e estações de trabalho gratuitos

Baixar aplicativos Windows e Linux

Comandos Linux

Ad