公众号旧文

Linux 中如何从 N 行文件里删除指定的 M 行

作者:胖子阅读 —

Linux 里删指定行,别逐行去改。直接拿删除名单过滤原文件,生成新文件就行。

核心就这一句命令:

几个参数得记牢: -F:按普通字符串匹配,避免 . 被当成正则。 -x:必须整行完全一样才算命中。 -f:把 delete.txt 里的内容全变成匹配规则。 -v:反选。匹配到的丢弃,没匹配到的保留。

动手前先查一遍,看看会删掉哪些行:

千万别这么写:

Shell 会在运行 grep 前先把文件清空,最后啥也没了。正确做法是先存到新文件,确认没问题再替换:

说白了,这就是用 M 行黑名单,从 N 行原文件里做减法。

原文Linux 中如何从 N 行文件里删除指定的 M 行