Você pode tentar usar awk
para imprimir o último arquivo:
awk '{ print $NF }' file
e para o campo de impressão ao lado do último:
awk '{ print $(NF - 1) }' file
Eu tenho este arquivo
123 My name is Lorry I'm 29 years old 10000 45
148 Name - Dan 20000 18
895 My name is John Lazaro I like tennis 30000 63
E eu quero imprimir apenas os últimos números em uma linha
45
18
63
É possível fazer isso?
ATUALIZAÇÃO: Agora quero imprimir
10000
20000
30000
No seu caso, a última palavra (separada por espaços) é um número. Se esse é sempre o caso, seu problema pode ser reduzido para imprimir a última palavra como:
awk 'NF {print $NF}'
ou
sed 's/.* //'
Para o anterior:
awk 'NF >= 2 {print $(NF-1)}'
Se você quiser imprimir a última palavra if é um número inteiro decimal positivo, então isso se torna:
awk '$NF ~ /^[0-9]+$/ {print $NF}'
(substitua $NF
por $(NF-1)
pelo anterior).
Se você quiser imprimir a seqüência mais à direita de dígitos decimais em todas as linhas, então:
sed -n 's/^/./;s/.*[^0-9]\([0-9]\{1,\}\).*//p'
Para o anterior:
sed -n 's/^/./;s/.*[^0-9]\([0-9]\{1,\}\)[^0-9].*[0-9].*//p'
Se alguém precisar da minha saída atualizada, basta digitar
awk '{print $(NF-1)}' file.txt
Tags shell