【发布时间】:2018-09-29 23:52:24
【问题描述】:
MacOS、Unix
我正在尝试使用 grep 来隔离一行中的特定 ID,如下所示:
# STOCKHOLM 1.0
#=GS WP_002089484.1/1-154 DE [subseq from] MULTISPECIES: AAC(3)-I family aminoglycoside 3-N-acetyltransferase [Proteobacteria]
WP_002089484.1/1-154 MGIIRTCRLGPDQVKSMRAALDLFGREFGDVATYSQHQPDSDYLGNLLRSKTFIALAAFDQEAVVGALAAYVLPKFEQARSEIYIYDLAVSGEHRRQGIATALINLLKHEANALGAYVIYVQADYGDDPAVALYTKLGIREEVMHFDIDPSTAT
#=GR WP_002089484.1/1-154 PP 9*******************************************************************************************************************************************************98
#=GC PP_cons 9*******************************************************************************************************************************************************98
#=GC RF xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//
我只想隔离显示 WP_002089484.1 的部分,但我必须对许多文件执行此操作,其中 ID 始终以“WP_”开头并始终以“.1”结尾。我只想要每个文件中的唯一事件。
我尝试了类似的方法:
grep -o "WP_.\{0,11\}" *.sto >> ProtID
但 ProtID 仍然具有原始文件中的所有信息。
【问题讨论】:
-
当我运行你的测试文件和 grep 命令时,ProtID 有 3 行,都只有
WP_002089484.1。看起来这几乎就是你想要的,除了重复。 “ProtID 仍然具有原始文件中的所有信息”是什么意思?由于您只附加到 ProtID,您是否可能在开发过程中从未删除过此文件并且旧结果仍然存在? -
啊,我弄错了,我没有删除以前的文件,所以它是附加到已经存在的文件中,所以唯一的问题是重复