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

如何删除当前目录树中所有.xml文件含"abcfk"的行?

解决删除目录树中所有XML文件含特定字符串行的问题

你之前用的命令是替换字符串,要删除整行的话,只需要把sed的替换命令改成删除匹配行的命令就行,给你两种靠谱的方案:

方案1:find + xargs(处理带空格文件名更安全的版本)

find . -name "*.xml" -type f -print0 | xargs -0 sed -i '/abcfk/d'
  • -print0 和 xargs -0 是配对使用的,能处理文件名里包含空格、特殊字符的情况,避免出错
  • /abcfk/d 是sed的核心命令:匹配所有包含"abcfk"的行,并直接删除
  • -i 让sed直接修改原文件(如果是macOS等BSD系统,需要写成 sed -i '' '/abcfk/d',注意空引号不能少)

方案2:find + -exec(更简洁的原生方式)

find . -name "*.xml" -type f -exec sed -i '/abcfk/d' {} +
  • 这个方式不需要xargs,直接让find把找到的文件传给sed处理,同样支持带空格的文件名
  • {} + 表示把所有匹配的文件一次性传给sed,效率比逐个处理更高

测试小技巧

在直接修改文件前,建议先去掉-i参数跑一遍命令,看看输出的内容是不是你想要的(不会修改原文件):

find . -name "*.xml" -type f | xargs sed '/abcfk/d'

确认没问题后,再加上-i执行原地修改就放心啦。

内容的提问来源于stack exchange,提问作者A. Gupta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:14:43