Isso faz o que eu acredito que você está pedindo. NOTA: input.txt
é o seu arquivo de entrada.
apenas sed
$ sed 's/\^[^']*//g' input.txt
GO:0005634'GO:0003677'
GO:0005634'GO:0003677'
GO:0005634'GO:0003677'
GO:0005634'GO:0003677'
Explicação
sed
é usado para remover as subcordas que começam com um acento circunflexo (^) e podem conter qualquer coisa, exceto um único backtick. Quando um backtick for encontrado, sed
substituirá isso por nada, excluindo-o com eficiência. Este padrão é repetido até esgotar. Isso tem o efeito de remover todas as strings ^....
.
grep + colar + sed
$ grep -o 'GO:[0-9]\+' input.txt | paste -d''' - - | sed 's/$/'/'
GO:0005634'GO:0003677'
GO:0005634'GO:0003677'
GO:0005634'GO:0003677'
GO:0005634'GO:0003677'
Explicação
grep
extrai todas as strings GO: XXXXX do arquivo input.txt
, paste
as coloca em 2 colunas, com um único tique entre as duas strings GO GO: XXXXX e, finalmente, sed
adiciona uma único carrapato até o fim.
Referências