separador separação do arquivo

3

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

    
por user3138373 17.12.2014 / 23:38

4 respostas

5

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.

    
por 17.12.2014 / 23:41
2

Tente fazer isso usando :

perl -ne 'print join "\t", split //' file > new_file
    
por 17.12.2014 / 23:41
2

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.

    
por 18.12.2014 / 05:49
1

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.

    
por 18.12.2014 / 04:41