孤立单词,后面跟着特定的单词组合

  • 本文关键字:单词 组合 terminal
  • 更新时间 :
  • 英文 :


我有一个数据集,看起来有点像我在下面键入的内容。我从我的Mac终端工作。我想只保留查询"nohitsfound"如查询ENST00000446470.1,并删除查询具有"长度"连续两次或更多次,如ENST00000382676.1。然而,我不知道如何做到这一点。

Query=ENST00000446470.1 Length=261 Nohitsfound Query=MSTRG.50645.1 Length=2007 Nohitsfound Query=ENST00000382676.1 Length=285 Length=94 Length=94 Length=94 Length=94 Query=ENST00000641821.1 Length=1217 Nohitsfound Query=ENST00000641436.1 Length=1821 Nohitsfound Query=ENST00000649959.1 Length=1734 Nohitsfound Query=MSTRG.50650.1 Length=245 Nohitsfound Query=ENST00000514465.1 Length=1395 Length=464 Length=464 Length=464

任何帮助都非常感谢!

echo 'Query=ENST00000446470.1 Length=261 Nohitsfound Query=MSTRG.50645.1 Length=2007 Nohitsfound Query=ENST00000382676.1 Length=285 Length=94 Length=94 Length=94 Length=94 Query=ENST00000641821.1 Length=1217 Nohitsfound Query=ENST00000641436.1 Length=1821 Nohitsfound Query=ENST00000649959.1 Length=1734 Nohitsfound Query=MSTRG.50650.1 Length=245 Nohitsfound Query=ENST00000514465.1 Length=1395 Length=464 Length=464 Length=464' | tr "Q" "n" | grep Nohitsfound | grep -vwE "Length.*Length"

假设char Q不是Query本身的一部分,这将工作。

解释:

  • echo是打印到屏幕的终端命令。
  • |(称为pipe)是将输出重定向到下一个的一种形式命令。
  • tr将替换所有的"与" n"(这是一个新的行)
  • grep将只留下没有找到的行。
  • grep -vwE将删除匹配正则表达式"Length.*Length".

最新更新