You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux下如何删除含'Query '模式的行及其直接上方的前一行

错误原因分析

  • 引号语法错误:你写的 sed '/Query /'I, +1 d' 存在多余的单引号,导致shell识别为未闭合的字符串,进入等待输入状态,所以终端只输出 > 提示符
  • 输入流顺序错误:你把目标文件名放在了管道末尾的tac后面,前面的tac没有输入源,逻辑完全错误

可行解决方案

方案1:修正sed+tac实现

倒序文件后,匹配目标行时连带下一行(对应原文件的上一行)一起删除,再倒序恢复即可:

tac file.txt | sed '/Query /{N;d;}' | tac > newfile.txt

方案2:直接用awk单遍扫描实现

不需要两次倒序,效率更高,逻辑也更可控:

awk '/Query / { delete prev; next } { if (prev) print prev; prev = $0 } END { if (prev) print prev }' file.txt > newfile.txt

验证结果

执行命令后生成的 newfile.txt 内容就是你需要的输出:

1. Query= ENST00000641267.1
2. Query= ENST00000641448.1
3. Query= MSTRG.3294.1
4. Query= ENST00000435134.2
5. Query= ENST00000503142.1
13. Query= MSTRG.3309.1

内容的提问来源于stack exchange,提问作者Jasmin Jonson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 08:06:03