Emacs的。如何删除包含某些文本的重复行

时间:2017-05-21 10:37:00

标签: emacs

Windows 10(64位),Emacs 25.1

假设我有文字:

111111111 aaaaaaaa bbbbbbbbbb

222222 3333333333 44444444

111111111 aaaaaaaa bbbbbbbbbb

111111111 aaaaaaaa bbbbbbbbbb

44444444 666666666 777777777777

111111111 aaaaaaaa bbbbbbbbbb

所以我想删除包含 aaaaaaaa 的重复行。

结果必须是:

111111111 aaaaaaaa bbbbbbbbbb

222222 3333333333 44444444

44444444 666666666 777777777777

我想使用Emacs的内置功能(没有编写自定义elisp脚本)。

1 个答案:

答案 0 :(得分:1)

如果您希望从缓冲区中删除所有重复行(无论它们是否包含“aaaaaaa”),请使用:

  • C-X ħ
  • M-x delete-duplicate-lines RET

请注意,您所需的结果包括删除所有空行(而不是保留其中一行),因此该帐户的Emacs结果不同。

如果要删除包含“aaaaaaaa”的所有行,请使用:

  • M-x flush-lines RET aaaaaaaa RET

如果你在第一个实例之后用point发出这个,那么它就不会删除第一个实例。

如果你想要delete-duplicate-lines的行为,但仅限于在包含“aaaaaaaa”的行上行动,那么我不知道标准命令(尽管它对{{{{{{{ 1}}介绍这样一个特征)。