Se eu entendi sua intenção corretamente, então isso acontece:
sed -e 's/./&\t/g' -e $'s/\t$//' file
A segunda substituição exclui a guia no final da linha.
Eu tenho um arquivo com seq gosta disso
ATCGTTTCTCAGCCTTTTGGCAAGACCAAGTGTAGTATCTGTTCTTATCAGATATTGGTATCTGCAGGCACTCCTGGAACCAAT
ATCACTTCTCAACCTTTTGACTAAGATCAAGTGTAATATCTATCTTTATCAGTTTAATATCTGAGATCTCCTTTATCTGAGGACAATATATTTAATGGATTTTTGGAACAGAGAGAAGGAATAGGAGCTTGTCCTGTCCACTCCATGCATTGACCTGGTATTGCAGGACCTCCAGAAACACCACCCCCTCC
ACGCATTATCCGCCTATTGGCTAAAAACAAATGTAGTATCTGTTCCTATCAGTTAAAGCATCAAATGTGGTCTCTAAGTTCAGGGAATTAAATTAATATTTGGAATTGGGAGATGGTTTGGGAGCTTGCTCTATCCTCTCCATGCCTCAGCATGTAATTGCAATGCTTTCAGGAGTGGTGCATTCCTT
Digamos que tenha 3 linhas. Eu quero para cada linha cada letra fica separada por guia e, em seguida, deseja armazená-lo em outro arquivo. Como posso fazer isso?
Atenciosamente
Se eu entendi sua intenção corretamente, então isso acontece:
sed -e 's/./&\t/g' -e $'s/\t$//' file
A segunda substituição exclui a guia no final da linha.
Tente fazer isso usando perl :
perl -ne 'print join "\t", split //' file > new_file
Em awk
:
awk -F '' -vOFS='\t' '{$1=$1}1' file > new_file
Emprestou o idioma {$1=$1}1
de uma resposta para uma de suas outras perguntas.
Isso define o separador de campo como nada ( -F ''
), o que significa que cada registro é lido caractere por caractere. O separador do campo de saída é definido como um caractere TAB ( -vOFS='\t'
) e o idiom {$1=$1}1
é (até onde eu sei) um no-op que tem o efeito colateral de fazer com que awk
insira o OFS
entre cada dois campos antes de imprimi-los todos.
Acho que você deve dar fold
a go:
tr \n \r <infile | fold -w1 | tr '\r\n' '\n\t' >outfile
Eu pré-processo a entrada de fold
com tr
substituindo os caracteres \n
ewline do fluxo de trabalho com \r
eturns. fold
está imprimindo um caractere de \n
ewline para cada coluna na entrada - cada uma das suas letras maiúsculas - mas redefine seu contador em \r
eturns e assim quando tr
faz o pós-processamento final e converte fold
\n
ewlines para \t
abs não há caracteres \t
ab extras na saída. A saída é de três linhas com um caractere \t
ab seguindo cada caractere, mas o último em cada linha.
Tags text-processing awk sed