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仍然拥有原始文件中的所有信息。
答案 0 :(得分:1)
如果您只希望每个文件出现一次,则以下命令可以帮助您:
grep -o "WP_.\{0,11\}" *.sto | sort | uniq
输出将是:
file1.sto:WP_002089484.1
file2.sto:WP_002089484.1
如果你想从结果中删除文件名:
grep -o "WP_.\{0,11\}" *.sto | sort | uniq | grep -o "WP_.\{0,11\}"
在这种情况下,输出将是:
WP_002089484.1
WP_002089484.1