p.G345L
我的句子中的单词具有诸如and之类的模式p.X31Z
。我需要删除p.
所以我得到G345L
和X31Z
。
答案1
不确定你用什么来界定它,但你可以轻松地通过 sed 进行管道传输。对于 的 GNU 实现sed
,在模式匹配中 '\b' 将表示单词边界,您可以使用它来确保您不会选取句子的一部分,例如“stop”。
$ cat file
p.G345L sentence stop. p.X31Z part of another sentence
$ sed 's/\bp\.//g' file
G345L sentence stop. X31Z part of another sentence
答案2
如果该模式p.
后跟一个大写字母,后跟一系列一个或多个十进制数字,后跟一个大写字母,那么这将是(POSIXly):
sed 's/p\.\([[:upper:]][[:digit:]]\{1,\}[[:upper:]]\)/\1/g'
答案3
您可以通过多种方式做到这一点。
和perl
:
$ echo "p.G345L and p.X31Z" | perl -pe 's/p\.//g'
G345L and X31Z
和sed
:
$ echo "p.G345L and p.X31Z" | sed 's/p\.//g'
G345L and X31Z