Outro sed
:
sed -ne'h;s/.*//p;x;:n' -e'N;s/;.* //p;tn' -eD <in >out
sed
salva uma cópia do espaço padrão em h
old space, s///
ubstitui todo o espaço padrão e p
rints os resultados, em seguida, e x
changes h
old e espaços padrão. Isso acontece em cada primeira linha de campo não em branco e obtém os espaços em branco na saída, quando apropriado.
Para cada outra linha, sed
também anexa o N
ext após um delimitador% e_line% e, em seguida, tenta \n
ubstitutar todo o espaço entre o primeiro ponto e o último espaço. Se ambos os caracteres ocorrerem no espaço padrão, a substituição s///
ests será bem-sucedida e t
voltará ao rótulo sed
ext para tentar novamente.
Senão :n
sed
elimina até e inclusive o primeiro D
ewline que está ocorrendo no espaço padrão antes de começar do início w / o que quer que permaneça.
Meus resultados:
L12194C;1;8;12
L12194C;2;30;46
L12194C;3;49;71
L12194C;4;0;0
L12194C;5;0;0
L12194C;6;1;3
L15698A2;4;2;4
L15698A2;5;0;0
L15698A2;6;0;0
L2281A2;4;1;2
L2281A2;5;0;0
12302C;1;8;11
12302C;2;1;1
12302C;3;1;1
12302C;4;1;2
12302C;5;2;4