Substituir uma string por “string | string”

0

Eu tenho um problema bem estranho. Fiz alguns cálculos para bioinformática, mas meus aplicativos downstream não aceitam minhas informações de cabeçalho em seu formato atual. Para contornar isso, modifiquei as informações do meu cabeçalho. Para esclarecer:

O cabeçalho original é assim: "> abc1"

O cabeçalho modificado é assim: "> abc1 | abc1"

Agora, há 1,3 milhão de arquivos de cabeçalho que foram modificados, todos eles seguem o padrão "abc", com o número após designar o número contig.

Meus arquivos de cálculo são principalmente valores separados por tabulações, mas contêm as informações de cabeçalho mais antigas. Existe alguma maneira eu posso usar o awk ou sed ou algo semelhante para substituir todas as ocorrências de "abc1" com "abc1 | abc1" automaticamente para todos os 1,3 milhões de ocorrências? Obviamente, todos os abc2's seriam abc2 | abc2 e assim por diante.

Refazer os cálculos com as informações de cabeçalho modificadas levaria bastante tempo, então eu realmente não quero refazer o trabalho só porque as informações do cabeçalho mudaram.

    
por Blaze 12.09.2015 / 07:13

1 resposta

2

Usando o sed assim?

sed -r -e 's/^>(abc[0-9]+)/>|/g' input.txt > output.txt

É melhor mostrar algumas das entradas reais e resultados esperados para obter respostas mais precisas.

    
por 12.09.2015 / 07:26