Extraindo o último elemento de uma linha com o awk

awk, o mastigador de linhas de texto

awk, o mastigador de linhas de texto

Hoje surgiu a necessidade de manipular, via script (shell), um arquivo texto e pegar o último elemento de uma linha, que é um código. Como a linha de exemplo abaixo:

DISSE0074I Operation successfully submitted. Distribution ID is 1234567890.123456.

No caso eu preciso pegar o código numérico no fim da linha. Geralmente eu usaria apenas o comando cut, como: cut -d’ ‘ -f8, mas e se a mensagem variar de tamanho (quantidade de palavras)? Como saber o índice do último elemento?

Entra em ação o awk. Usando awk ‘{print $8}’ dá pra imprimir o elemento número 8; e há a variável NF que informa a quantidade de campos. Então dá pra extrair o último campo assim:

cat arquivo.txt | awk ‘{print $NF}’

Perfeito para o que eu queria.

Anúncios

Um comentário sobre “Extraindo o último elemento de uma linha com o awk

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s