Você pode usar o GNU datamash
(um novo programa de linha de comando ish), que possui o comando transpose
integrado com validação de entrada restrita.
Exemplo:
$ cat in.txt
Column1 Column2 Column3
Row1_Col1 Row1_Col2 Row1_Col3
Row2_Col1 Row2_Col2 Row2_Col3
Row3_Col1 Row3_Col2 Row3_Col3
$ datamash transpose < in.txt
Column1 Row1_Col1 Row2_Col1 Row3_Col1
Column2 Row1_Col2 Row2_Col2 Row3_Col2
Column3 Row1_Col3 Row2_Col3 Row3_Col3
Em seguida, divida por colunas com cut
:
$ datamash transpose < in.txt | cut -f1,3 | tr '\t' '='
Column1=Row2_Col1
Column2=Row2_Col2
Column3=Row2_Col3
Para criar vários arquivos, você pode usar isto:
for i in 2 3 4 ; do
datamash transpose < in.txt | cut -f1,$i | tr '\t' '=' > file$i.txt
done
O GNU Datamash está disponível aqui: link ,
e pacotes estão disponíveis em várias distribuições gnu / linux
(disclaimer: Sou desenvolvedor de datamash
).