Estes comandos irão imprimir a última coluna de um arquivo separado por espaços:
-
awk '{print $NF}' file
em awk
, NF
é o número de campos e $NF
é o último campo.
-
perl -lane 'print $F[$#F]' file
-a
divide o arquivo no espaço em branco no array @F
, $#F
é o número de elementos no array, então $F[$#F]
é o último elemento. O -n
significa ler o arquivo fornecido na linha de comando e aplicar o script passado com -e
a cada linha. -l
apenas adiciona um caractere de nova linha ( \n
) a cada instrução print
.
-
sed 's/.* //g'
uma expressão regular simples que combina tudo com o último espaço e o exclui, deixando apenas a última coluna.
-
rev file | cut -d' ' -f 1 | rev
rev
inverte sua saída para que o último campo seja o primeiro, cut
com espaço delimitador para imprimi-lo e rev
para reverter o texto de volta ao normal. Isso ganhou
Não trabalhe se você tiver espaços em branco consecutivos .
Com base em sua opinião, acredito que você não queira a última coluna, mas a penúltima ou as duas últimas. Nesse caso, use-os para imprimir os 2 últimos ( 8.39 Mbits/sec
):
awk '{print $(NF-1),$NF}' file
perl -lane 'print "$F[$#F-1] $F[$#F]"' file
sed 's/.* \(.* .*\)//' file
rev file | cut -d' ' -f 1,2 | rev
e estes para imprimir o penúltimo ( 8.39
):
awk '{print $(NF-1)}' file
perl -lane 'print $F[$#F-1]' file
sed 's/.* \(.*\) .*//' file
rev file | cut -d' ' -f 2 | rev