我需要在 Sublime Text 中执行 2 个操作:提取唯一行和提取重复行。例如对于输入
a
b
a
提取重复项应导致:
a
并提取唯一值应该导致:
b
是否有内置操作或插件可以做到这一点?
答案1
您可以通过运行然后Sort Lines
搜索使用行边界标记^
和$
反向引用的正则表达式来轻松找到重复的行\1
。
^(.+)$\n^\1$
然后在新选项卡中执行“查找全部”、“复制”、“粘贴”操作,然后“排列行”|“唯一”,即可提取它们。
答案2
不幸的是我目前无法访问 Sublime Text,所以我无法测试这一点,但我相信以下内容可能对您有用:
Edit -> Sort Lines
通过命令对行进行排序- 安装突出显示重复项插件,并使用它来突出显示所有重复的行
- 将突出显示的行剪切到剪贴板,然后将其粘贴到新文件中
- 原始文件中保留的行是您的提取唯一值线
- 在新文件中,选择所有文本,然后通过
Edit -> Permute Lines -> Unique
命令删除重复的行 - 新文件中保留的行是您的提取重复项线
我不完全确定步骤#1是否真的有必要,但我还是把它包括在内以防万一。
答案3
遇到了同样的问题(向我展示重复项)...没有找到简单的基于 Sublime 的答案,所以又回到了使用 Unix 命令(我的文件包含我想在第 11-56 列中找到重复项的数据):
cut -c 11-56 myfile.dat | sort | uniq -d
在此发布以供其他人参考。
答案4
稍微修改了上面的@MJH 答案,以使用 Sublime 3 和 DiffMerge 获取重复的行,而无需使用Highlight Duplicates
插件。
Edit -> Sort Lines
通过 Sublime 3命令对行进行排序- 将原始文件另存为排序后的原始文本
- 选择所有文本,然后通过 Sublime 3
Edit -> Permute Lines -> Unique
命令删除重复的行 - 将修改后的文件另存为无重复排序.txt
- 使用 DiffMerge 工具开始差异分析排序后的原始文本和无重复排序.txt文件。
- 在 DiffMerge 中使用
Export -> File Diffs
来获取剪贴板中的重复项列表或保存到另一个文件。