Você pode usar 'cortar' para extrair certas colunas de dados delimitados. Por exemplo, o abaixo para extrair as duas últimas colunas:
echo col1,col2,col3,col4,col5 | cut -d , -f 4,5
imprime
col4,col5
O argumento -d especifica o delimitador e o -f especifica o índice ou intervalo de índices para os campos resultantes que você deseja em seus resultados
EDITAR
Para torná-lo um pouco mais dinâmico, o abaixo irá selecionar as últimas colunas X com base em um delimitador de Y:
function lastCols {
endcol=$(($(head -n 1 $1 | grep -o , | wc -l) + 1))
startcol=$(($endcol-$2+1))
cut -d $3 -f $startcol-$endcol < $1
}
lastCols $1 $2 $3
Eu não fiz muitos testes sobre isso, então é provável que tenha um pouco de bugs. Use como abaixo:
[]$ cat temp.txt
col1,col2,col3,col4,col5
col1,col2,col3,col4,col5
col1,col2,col3,col4,col5
col1,col2,col3,col4,col5
col1,col2,col3,col4,col5
col1,col2,col3,col4,col5
col1,col2,col3,col4,col5
col1,col2,col3,col4,col5
col1,col2,col3,col4,col5
[]$ ./lastCols.sh temp.txt 2 ,
col4,col5
col4,col5
col4,col5
col4,col5
col4,col5
col4,col5
col4,col5
col4,col5
col4,col5