Fixando cabeçalho e impressão

0

Eu tenho o cabeçalho começando com '>' e eu quero corrigir o cabeçalho, mantendo a primeira palavra e removendo outro mostrado como em output.txt e imprimi-lo

input.txt

>AGAJ01065549.1 scaffold:Xipmac4.4.2:AGAJ01065549.1:1:500:1 REF
CGCCAGGTGTCTGGCGTAATAGCGCCAGCGCCAGGTGTCATATACGTAATAGCGCCAGGT
>RGAMMT01065456.1 scaffold:Xipmac4.4.2:AGAJ01065595.1:1:500:1 REF
GACTAGTTTTTACATATAGTAATGGTTATTCGGAAGTGTACAGACGTTTTCAGGTTTTTT
TTTGGTAGGGGTTGAGGTGTTGAGGTGAGGGGACTATGTGGAGGGAACTTTCCATAGAGG

output.txt

>AGAJ01065549.1 
CGCCAGGTGTCTGGCGTAATAGCGCCAGCGCCAGGTGTCATATACGTAATAGCGCCAGGT
>RGAMMT01065456.1 
GACTAGTTTTTACATATAGTAATGGTTATTCGGAAGTGTACAGACGTTTTCAGGTTTTTT
TTTGGTAGGGGTTGAGGTGTTGAGGTGAGGGGACTATGTGGAGGGAACTTTCCATAGAGG
    
por jack 02.11.2012 / 20:54

3 respostas

3

Isso pode funcionar para você (GNU sed):

sed -i '/^>/s/\s.*//' file
    
por 03.11.2012 / 02:31
2

Você pode fazer isso canalizando o texto pelo awk

awk '{print $1}' input.txt

Isto imprime a primeira entrada de cada linha (as entradas são separadas por espaços).

    
por 02.11.2012 / 21:46
1

Semelhante à resposta usando awk é cut :

cut -d' ' -f 1 input.txt > output.txt

A opção -d define o delimitador como um espaço e -f seleciona o primeiro campo.

No entanto, você também pode usar sed :

sed 's,^\([^ ]\+\) .*,,' input.txt > output.txt

Este comando substitui uma expressão. Parece o início de uma linha e copia todos os caracteres para um buffer que não seja espaço em branco. Além disso, ele corresponde a um espaço em branco e a qualquer outro caractere. sed substitui essa linha pelo conteúdo do buffer.

    
por 02.11.2012 / 23:11

Tags