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

如何删除从eng.md文件中捕获的元素?附grep列出的.mkv文件列表

如何从eng.md文件中删除捕获到的MKV文件路径行?

看起来你已经用grep -i 'mkv' eng.md定位到了所有包含MKV文件路径的行,现在要把这些行从eng.md里删掉对吧?这里有几个简单可靠的方法,你可以根据自己的情况选:

方法一:直接用sed删除匹配行(最简单)

如果你要删除所有包含"mkv"(不区分大小写)的行,直接用sed命令就行,它会帮你原地修改文件,还能自动备份原文件防止误操作:

# Mac系统(需要指定备份后缀,这里用.bak)
sed -i.bak '/mkv/I d' eng.md

# Linux系统(可以直接原地修改,可选加备份)
sed -i '/mkv/I d' eng.md

解释一下参数:

  • -i.bak:原地修改文件,同时生成一个名为eng.md.bak的备份文件,万一操作错了还能恢复
  • /mkv/I:匹配包含"mkv"的行,I表示不区分大小写(比如匹配MKV、Mkv都可以)
  • d:删除匹配到的行

执行完后,你可以用grep -i 'mkv' eng.md检查一下,应该就找不到那些MKV路径行了。

方法二:精确删除grep捕获到的特定行(适合需要精准匹配的情况)

如果有些包含mkv的行你不想删,只想删除这次grep捕获到的那些特定路径行,可以这么做:

  1. 先把grep捕获到的所有行导出到一个临时文件里:
grep -i 'mkv' eng.md > temp_mkv_lines.txt

⚠️ 注意:如果你的终端输出里有截断的行(比如./Volumes/Transcend/Downloads/._The.Ad...),打开temp_mkv_lines.txt确认一下内容是不是完整的——终端显示截断只是因为行太长,实际文件里的行应该是完整的,这个不用担心。

  1. 用grep反向匹配,把不包含这些特定行的内容写入新文件,再替换原文件:
grep -v -xFf temp_mkv_lines.txt eng.md > eng_clean.md && mv eng_clean.md eng.md

参数解释:

  • -v:反向匹配,只输出不匹配的行
  • -x:整行精确匹配,不会出现部分匹配误删的情况
  • -F:把临时文件里的内容当作固定字符串,不是正则表达式,避免路径里的特殊字符(比如.)被当作正则处理
  • -f:从temp_mkv_lines.txt里读取要匹配的行模式
  1. 最后可以删掉临时文件:
rm temp_mkv_lines.txt

重要提醒

不管用哪种方法,操作前最好手动备份一下原文件,比如:

cp eng.md eng.md.backup

这样就算操作失误,也能从备份文件恢复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:35:34