$ cat > data
Total Branch Predictor Mispredictions: 10
Total Branch Predictor OK predictions: 80
$ cat data | awk '{print $NF}'
10
80
$ cat data | awk '{printf "%s ",$NF}'
10 80 $ awk '{printf "%s ",$NF}' < data
10 80 $
awk
não apenas sabe $1
, $2
etc. para endereçar a coluna n -th, mas também $NF
para endereçar a última coluna (neste caso, 10
e 80
). O segundo comando utiliza printf
em vez de print
para cuspir tudo em uma linha (observe a nova linha ausente no final). O terceiro comando evita usar cat
.
Existe também uma solução envolvendo sed
:
$ sed 's/^[^:]*: \([0-9]*\)/ /' < data
10
80
E um envolvendo apenas bash
:
$ while read line; do printf "%s " "${line##*: }"; done < data; echo
10 80
$
que lê o arquivo linha por linha, manipula a variável line
excluindo o maior padrão correspondente da esquerda (neste caso: tudo até :
) e passando para printf
, que então prossegue para formate-o. Eu adicionei echo
no final para obter uma nova linha final:)