1

我有一个如下所示的文本文件。我只需要 > 符号后的 PDB ID。我怎样才能用 awk 做到这一点?

>results for sequence "files/1H8U.pdb" starting "ASPILEGLUGLY"
DIEGREKQQPSRVS
>results for sequence "files/1P6K.pdb" starting "ILEALALYSASP"
IAKDVAKEGSDGATKQRTHPQDSASI

期望的输出

>1H8U
DIEGREKQQPSRVS
>1P6K
IAKDVAKEGSDGATKQRTHPQDSASI
4

2 回答 2

2

我可能会用sed这个,但这里是awk

awk '/^>/ { sub (/[^\/]+\//,">", $0); sub (/\..+/, "", $0) }1' file.txt

这是sed

sed -r '/^>/s%[^/]+/%>%;s%\..+%%' file.txt
于 2012-09-09T09:40:44.453 回答
1

这可能对您有用:

awk -F[/.] '/^>/{$1=">"$2;NF=1};1' file

或者:

sed '/^>.*\/\([^.]*\)\..*/s//>\1/' file
于 2012-09-09T13:19:05.130 回答