Com a atividade que você está fazendo, como explicado na sua pergunta, parece que você precisa apenas de awk
para todas essas coisas.
awk '$NF' infile*.txt > outfile.txt
O $NF
refere-se à última palavra (significa uma palavra com espaços em branco ao redor) em cada linha em awk
.
Embora a solução awk
acima esteja lá, você pode usar as linhas para ler uma matriz e imprimir o último elemento dessa matriz com um índice negativo (bash 4.3 e acima).
arrayedline=( $line )
printf "%s\n", "${arrayedline[@]-1}"
Na versão mais antiga de bash
, você pode usar a expressão no índice arrayedline[${#arrayedline[@]-1}]
, que com substring um do comprimento da matriz ${#arrayedline[@]}
, podemos obter o último elemento disso.
arrayedline=( $line )
printf "%s\n", "${arrayedline[${#arrayedline[@]}-1]}"
Ou você pode até usar o seguinte:
printf "%s\n", "${arrayedline[@]:(-1)}" #or
printf "%s\n", "${arrayedlne[@]: -1}"
Agora que o índice da matriz bash
está começando em 0
.