Remove todo o texto que não inicia com (EC usando o comando sed awk grep

0

Eu tenho um arquivo como este e quero ter apenas números de EC do arquivo.

5'-nucleotidase SurE (EC 3.1.3.5)
L-aspartate oxidase (EC 1.4.3.16)
Nicotinamide-nucleotide adenylyltransferase, NadM family (EC 2.7.7.1) @ Nicotinate-nucleotide adenylyltransferase, NadM family (EC 2.7.7.18)
Nicotinamidase (EC 3.5.1.19)
Quinolinate phosphoribosyltransferase [decarboxylating] 
NAD synthetase (EC 6.3.1.5) / Glutamine amidotransferase chain of NAD synthetase
4'-phosphopantetheinyl transferase (EC 2.7.8.-)

A saída deve ser como:

(EC 3.1.3.5)
(EC 1.4.3.16)
(EC 2.7.7.1)
(EC 2.7.7.18)
(EC 3.5.1.19)    
(EC 6.3.1.5)    
(EC 2.7.8.-)
    
por Tina sharma 02.12.2017 / 13:39

2 respostas

1

Simplesmente com grep :

grep -o '(EC [^)]*)' file
  • [^)]* - corresponde a todos os caracteres, exceto colchete de fechamento )

A saída:

(EC 3.1.3.5)
(EC 1.4.3.16)
(EC 2.7.7.1)
(EC 2.7.7.18)
(EC 3.5.1.19)
(EC 6.3.1.5)
(EC 2.7.8.-)
    
por 02.12.2017 / 13:44
1
sed -n 's/^\(.*\)\((EC[^)]*)\).*$//p'

e a versão divertida awk :

awk -F'\(EC|\)' 'NF==3 { print "(EC" $2 ")" }'
    
por 02.12.2017 / 14:01

Tags