我有一个文本文件,如下所示。在>之后我只需要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
答案 0 :(得分:2)
我可能会使用sed
,但这里是awk
:
awk '/^>/ { sub (/[^\/]+\//,">", $0); sub (/\..+/, "", $0) }1' file.txt
这是sed
:
sed -r '/^>/s%[^/]+/%>%;s%\..+%%' file.txt
答案 1 :(得分:1)
这可能对您有用:
awk -F[/.] '/^>/{$1=">"$2;NF=1};1' file
或:
sed '/^>.*\/\([^.]*\)\..*/s//>\1/' file