Mac终端下如何筛选含nohitsfound且无连续多个Length的查询序列
实现方案
Mac系统自带awk工具,直接运行终端命令即可完成筛选:
操作步骤
- 先将你的原始数据集保存为纯文本文件,例如命名为
raw_query.txt - 打开终端进入文件所在目录,执行以下命令:
awk -v RS='Query=' '/Nohitsfound/ && !/Length=[0-9]*\s+Length=/ { print "Query=" $1 }' raw_query.txt
如果需要把筛选结果保存为新文件,在命令末尾添加> filtered_query.txt即可,示例:
awk -v RS='Query=' '/Nohitsfound/ && !/Length=[0-9]*\s+Length=/ { print "Query=" $1 }' raw_query.txt > filtered_query.txt
命令说明
-v RS='Query=':指定记录分隔符为Query=,把每一条独立查询拆分为单独的处理单元/Nohitsfound/:仅保留包含Nohitsfound的查询记录!/Length=[0-9]*\s+Length=/:排除存在2个及以上连续Length字段的不合格记录
筛选结果
用你提供的示例数据测试,输出结果如下:
Query=ENST00000446470.1 Query=MSTRG.50645.1 Query=ENST00000641821.1 Query=ENST00000641436.1 Query=ENST00000649959.1 Query=MSTRG.50650.1
内容的提问来源于stack exchange,提问作者bart joosten
相关产品推荐
相关产品推荐

