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

如何用单条命令将文件中被删除的行输出到新文件?

解决sed删除行同时保存被删内容的问题

嘿,这个问题我之前也碰到过!你用的sed -i 1,10d A.txt >> B.txt之所以没效果,核心原因是-i参数让sed进入原地修改模式——它会直接修改原文件,不会把处理的内容输出到标准输出,所以你后面的>> B.txt重定向的是空内容,自然看不到被删除的行。

下面给你两种靠谱的解决方案:

方法一:分两步操作(直观易懂)

先把要删除的行提取到B.txt,再删除原文件的对应行,逻辑清晰,适合新手:

# 提取A.txt的前10行到B.txt
head -n 10 A.txt > B.txt
# 原地删除A.txt的前10行
sed -i 1,10d A.txt

方法二:用sed的w命令一次完成(高效简洁)

sed自带的w命令可以把匹配到的行写入指定文件,结合多编辑命令-e,能一次完成“保存被删行+删除原文件行”的操作:

sed -i -e '1,10w B.txt' -e '1,10d' A.txt
  • -e '1,10w B.txt':匹配A.txt的前10行,将它们写入B.txt
  • -e '1,10d':删除A.txt的前10行
  • -i:原地修改A.txt

这样一条命令就能搞定两个需求,效率更高~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:41:58