$ csplit -zsf file -n 1 ip.txt /^chr/ {*} ; paste file* | column -nt
chr10:127293562-127293909 chr11:49214073-49214804 chr11:49854587-49855127
BRUNOL4(Hs/Mm) BRUNOL4(Hs/Mm) A1CF(Hs/Mm)
CPEB4(Hs/Mm) BRUNOL5(Hs/Mm) BRUNOL4(Hs/Mm)
CUG-BP(Hs/Mm) CPEB2(Hs/Mm)
DAZAP1(Hs/Mm) CPEB4(Hs/Mm)
ENOX1(Hs/Mm) CUG-BP(Hs/Mm)
FMR1(Hs/Mm) HNRNPC(Hs/Mm)
HNRNPCL1(Hs/Mm)
HNRNPH1(Hs/Mm)
HuR(Hs/Mm)
MBNL1(Hs/Mm)
NOVA1(Hs/Mm)
-
csplit
usado para dividir arquivos com base em um padrão-
-z
opção para excluir arquivos vazios (para casos como a própria primeira linha de correspondência de padrões) -
-s
suprime a saída do log -
-f file -n 1
nome dos arquivos de saída começam comfile
e sufixo de dígito único -
ip.txt
é o arquivo de entrada,/^chr/
é padrão para trabalhar em -
{*}
o maior número possível de divisões
-
-
paste
é então usado para concatenar os arquivos divididos na coluna -
column -nt
usado para estilizar a saída da colagem,-n
impede que o comportamento padrão decolumn
mescle delimitadores adjacentes e uma extensão GNU