Windows 10(64 位)、Emacs 25.1
假设我有文本:
111111111 啊啊啊啊啊啊
222222 3333333333 44444444
111111111 啊啊啊啊啊啊
111111111 啊啊啊啊啊啊
44444444 666666666 777777777777
111111111 啊啊啊啊啊啊
所以我想删除包含aaaaaaaa的重复行。
结果一定是这样的:
111111111 啊啊啊啊啊啊
222222 3333333333 44444444
44444444 666666666 777777777777
我想使用 Emacs 的内置功能(无需编写自定义 elisp 脚本)。
如果您希望从缓冲区中删除所有重复行(无论它们是否包含“aaaaaaaa”),请使用:
delete-duplicate-lines RET请注意,您想要的结果包括删除所有空行(而不是保留其中之一),因此 Emacs 的结果在该帐户上是不同的。
如果要删除包含“aaaaaaaa”的所有行,请使用:
flush-lines RET aaaaaaaa RET如果您在第一个实例之后使用 point 发出此命令,则它不会删除该第一个实例。
如果您想要的行为delete-duplicate-lines但仅限于仅作用于包含“aaaaaaaa”的行,那么我不知道为此的标准命令(尽管引入delete-duplicate-lines这样的功能将是一个相对简单的增强)。