Aprenda a usar variáveis embutidas AWK - Parte 10
- 4303
- 1117
- Randal Kuhlman
Enquanto descobrimos a seção de Awk Recursos, nesta parte da série, percorreremos o conceito de variáveis internas em Awk. Existem dois tipos de variáveis que você pode usar no AWK, são; usuário definido variáveis, que abordamos na Parte 8 e construídas em variáveis.
Exemplos de variáveis incorporados Construídas em variáveis têm valores já definidos em Awk, Mas também podemos alterar cuidadosamente esses valores, as variáveis internas incluem:
NOME DO ARQUIVO: Nome do arquivo de entrada atual (não altere o nome da variável)Fr: Número da linha de entrada atual (que é a linha de entrada 1, 2, 3 ... assim, não altere o nome da variável)Nf: Número de campos na linha de entrada atual (não altere o nome da variável)OFS: Separador de campo de saídaFs: Separador de campo de entradaOrs: separador de registro de saídaRs: Separador de registro de entrada
Vamos prosseguir para ilustrar o uso de algumas das variáveis embutidas AWK acima:
Para ler o nome do arquivo do arquivo de entrada atual, você pode usar o NOME DO ARQUIVO Variável embutida da seguinte maneira:
$ awk 'print filename' ~/domínios.TXT
Variável de nome de arquivo AWK Você perceberá que o nome do arquivo é impresso para cada linha de entrada, esse é o comportamento padrão de Awk Quando você usa NOME DO ARQUIVO variável interna.
Usando Nr Para contar o número de linhas (registros) em um arquivo de entrada, lembre -se de que ele também conta as linhas vazias, como veremos no exemplo abaixo.
Quando vemos o arquivo domínios.TXT Usando o comando CAT, ele contém 14 linhas com texto e vazio 2 linhas:
$ cat ~/domínios.TXT
Imprimir conteúdo de arquivo $ awk 'end print "O número de registros no arquivo é:", nr' ~/domínios.TXT
Contagem de linhas AWK Para contar o número de campos em um registro ou linha, usamos a variável NR integrada da seguinte maneira:
$ cat ~/nomes.TXT
Listar o conteúdo do arquivo $ awk 'print "registro:", nr, "tem", nf, "campos"; '~/nomes.TXT
Contagem de campos AWK Em seguida, você também pode especificar um separador de campo de entrada usando o Fs variável embutida, define como Awk divide as linhas de entrada em campos.
O valor padrão para Fs é espaço e aba, Mas podemos mudar o valor de Fs a qualquer personagem que instruirá a Awk a dividir as linhas de entrada de acordo.
Existem dois métodos para fazer isso:
- Um método é usar o Fs variável interna
- E o segundo é invocar o -F Opção awk
Considere o arquivo /etc/passwd Em um sistema Linux, os campos neste arquivo são divididos usando o : Personagem, para que possamos especificá -lo como o novo separador de campo de entrada quando queremos filtrar certos campos, como nos seguintes exemplos:
Podemos usar o -F Opção da seguinte forma:
$ awk -f ': "print $ 1, $ 4;' /etc /passwd
Campos de filtro AWK no arquivo de senha Opcionalmente, também podemos aproveitar o Fs Variável interna como abaixo:
$ awk 'BEGN fs = ":"; print $ 1, $ 4; ' /etc /passwd
Campos de filtro em arquivo usando awk Para especificar um separador de campo de saída, use o OFS Variável interna, ele define como os campos de saída serão separados usando o caractere que usamos como no exemplo abaixo:
$ awk -f ': "Begin ofs =" ==> "; print $ 1, $ 4;' /etc /passwd
Adicionar separador ao campo no arquivo Nisso Parte 10, Exploramos a idéia de usar variáveis incorporadas awk que vêm com valores predefinidos. Mas também podemos mudar esses valores, não é recomendável fazê -lo, a menos que você saiba o que está fazendo, com entendimento adequado.
Depois disso, progrediremos para cobrir como podemos usar variáveis de shell nas operações de comando AWK, portanto, permanecerem conectados a Tecmint.
- « Geary - um cliente de e -mail moderno de boa aparência para Linux
- Cumulus - um aplicativo climático em tempo real para desktops Linux »