このようなファイルがありますが、ファイルからEC番号を取得したいと思います。
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.-)
出力は次のようになります。
(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.-)
答え1
簡単にgrep
:
grep -o '(EC [^)]*)' file
[^)]*
- 右括弧を除くすべての文字と一致)
出力:
(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.-)
答え2
sed -n 's/^\(.*\)\((EC[^)]*)\).*$/\2/p'
そしてawk
興味深いバージョン:
awk -F'\\(EC|\\)' 'NF==3 { print "(EC" $2 ")" }'