Como usar vários delimitadores em Awk

Como usar vários delimitadores em Awk
Awk é uma linguagem de programação poderosa e de correspondência de padrões que funciona na linha de comando para encontrar vários padrões nas saídas e arquivos de comando.

Podemos considerar a AWK uma melhoria em relação ao SED, pois oferece mais recursos, incluindo matrizes, variáveis, loops e boas expressões regulares e regulares.

Neste tutorial, discutiremos rapidamente como você pode usar vários delimitadores em um comando AWK. Antes de prosseguirmos, observe que este tutorial não é um guia para iniciantes para Awk, nem pretendi como tal.

Consulte o seguinte recurso se precisar de um guia para iniciantes para estragar.

https: // linuxhint.com/use_awk_linux/

O que são delimitadores?

Estou certo de que, como você está dedicando tempo para ler este artigo, você está familiarizado com o conceito de delimitadores. Mas não dói recapitular, então vamos fazer isso agora:

Em poucas palavras, os delimitadores são uma sequência de caracteres usados ​​para separar os valores de texto da string. Existem vários tipos comuns de delimitadores que incluem:

Nome Símbolo
Vírgula ,
Cólon :
Ponto e vírgula ;
Período .
Cano |
Barragem \
Golpear /
Parêntese ()
Aparelho encaracolado
Suportes quadrados []
Espaço

Separador de campo Awk Regex

O separador de campo AWK (FS) é usado para especificar e controlar como a AWK divide um recorde em vários campos. Além disso, pode aceitar um único caráter de uma expressão regular. Depois de especificar uma expressão regular como o valor para o FS, o AWK verifica os valores de entrada para a sequência de caracteres definidos na expressão regular.

Vamos implementar a funcionalidade do AWK para aceitar valores de expressão regular no separador de campo para conectar vários delimitadores.

Use vários delimitadores

Para ilustrar como se separar usando vários delimitadores em Awk, usarei um exemplo simples para mostrar como usar essa funcionalidade.

Suponha que você tenha um arquivo com dados da seguinte maneira:

/org/gnone/desktop/interface: estabelecido: abril7 16 16.59.09 | Org.gnomo.terminal.Desktop [1099]

Do arquivo acima, desejamos obter a saída semelhante à mostrada abaixo:

org/gnome/desktop/interface estabelecida 17 de abril 16:59.09 Org.gnomo.terminal.Desktop [1099]

Para separar o arquivo usando os vários delimitadores neste caso, um cólon, espaço e um tubo-podemos usar um comando como mostrado abaixo:

awk -f '[: |]' 'print $ 1, $ 2, $ 3, $ 4, US $ 5, US $ 6' Usuário.registro

O comando acima gera as informações como mostrado abaixo:

Como você pode ver, você pode combinar mais de um delimitador no separador de campo AWK para obter informações específicas.

Conclusão

Neste guia rápido, discutimos o uso do AWK para separar vários delimitadores em um arquivo de entrada.

Para obter mais informações sobre como expandir a funcionalidade do AWK FS, considere os seguintes recursos:

https: // www.gnu.org/software/gawk/manual/html_node/regexp-field-spliting.html

https: // www.gnu.org/software/gawk/manual/html_node/Separadores de campo.html