perl -alF\n -00ne '
push @{ $A[$_] }, $F[$_] for 0 .. $#F; END{
print join "\t", @$_ for @A;}
' yourfile.txt
-
Opções Perl
-a
Para cada registro lido, ele irá autosplificar o registro no separador de campo fornecido na opção-F
e armazenar os campos na matriz@F
.-l
DefineORS = RS = "\n"
-F\n
DefineFS = "\n"
-00
DefineRS = "
, ativandoparagraph-mode
"RS
. Observe que isso anula o-l
de uma configuração anterior por meio de-n
.-e
Configura um arquivo implícito lido em loop + impressão de doação, a menos que seja solicitado.Perl
Aplique o código@A
fornecido em cada registro do arquivo de entrada. -
Trabalhando
list-of-list
éLoL
, umLoL
, em que armazenamos as linhas correspondentes de cada registro. Então, as primeiras linhas de cada registro são armazenadas em $ A [0], as segundas linhas de cada registro entram em $ A [1], ...Então, quando tivermos esgotado a leitura em todos os registros do arquivo, simplesmente imprimiremos a matriz cujos elementos são
TAB
, adequadamente unidos por %code% .
Resultados
HEADER1 HEADER2 HEADER3 HEADER4
item1 item1 item1 item1
item2 item2 item2 item2