Aprenda a usar variáveis embutidas AWK - Parte 10
- 4254
- 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 incorporadosConstruí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.TXTVariá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.TXTImprimir conteúdo de arquivo
$ awk 'end print "O número de registros no arquivo é:", nr' ~/domínios.TXTContagem 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.TXTListar o conteúdo do arquivo
$ awk 'print "registro:", nr, "tem", nf, "campos"; '~/nomes.TXTContagem 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 /passwdCampos 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 /passwdCampos 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 /passwdAdicionar 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 »