我的文本有很多行,我的问题是如何删除 emacs 中的重复行?在没有外部实用程序的情况下使用 emacs 或 elisp 包中的命令。
例如:
this is line a
this is line b
this is line a
删除第三行(与第一行相同)
this is line a
this is line b
最佳答案
如果您有 Emacs 24.4 或更高版本,最简洁的方法是使用新的 delete-duplicate-lines
函数。请注意
- 这适用于区域,而不是缓冲区,因此请先选择所需的文本
- 它保持原件的相对顺序,消除重复项
例如,如果您的输入是
test
dup
dup
one
two
one
three
one
test
five
M-x删除重复行
就可以了
test
dup
one
two
three
five
您可以选择通过在通用参数 (C-u
) 前面添加前缀来向后搜索。结果将是
dup
two
three
one
test
five
信用归emacsredux.com .
其他迂回选项,不会给出完全相同的结果,可通过 Eshell 获得:
排序-u
;不保持原件的相对顺序uniq
;更糟糕的是它需要对其输入进行排序
关于emacs - emacs中如何删除重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13046791/