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