有没有办法提取 Sublime Text 中的重复行?

有没有办法提取 Sublime Text 中的重复行?

我需要在 Sublime Text 中执行 2 个操作:提取唯一行和提取重复行。例如对于输入

a
b
a

提取重复项应导致:

a

并提取唯一值应该导致:

b

是否有内置操作或插件可以做到这一点?

答案1

您可以通过运行然后Sort Lines搜索使用行边界标记^$反向引用的正则表达式来轻松找到重复的行\1

^(.+)$\n^\1$

然后在新选项卡中执行“查找全部”、“复制”、“粘贴”操作,然后“排列行”|“唯一”,即可提取它们。

答案2

不幸的是我目前无法访问 Sublime Text,所以我无法测试这一点,但我相信以下内容可能对您有用:

  1. Edit -> Sort Lines通过命令对行进行排序
  2. 安装突出显示重复项插件,并使用它来突出显示所有重复的行
  3. 将突出显示的行剪切到剪贴板,然后将其粘贴到新文件中
  4. 原始文件中保留的行是您的提取唯一值线
  5. 在新文件中,选择所有文本,然后通过Edit -> Permute Lines -> Unique命令删除重复的行
  6. 新文件中保留的行是您的提取重复项线

我不完全确定步骤#1是否真的有必要,但我还是把它包括在内以防万一。

答案3

遇到了同样的问题(向我展示重复项)...没有找到简单的基于 Sublime 的答案,所以又回到了使用 Unix 命令(我的文件包含我想在第 11-56 列中找到重复项的数据):

cut -c 11-56 myfile.dat | sort | uniq -d

在此发布以供其他人参考。

答案4

稍微修改了上面的@MJH 答案,以使用 Sublime 3 和 DiffMerge 获取重复的行,而无需使用Highlight Duplicates插件。

  1. Edit -> Sort Lines通过 Sublime 3命令对行进行排序
  2. 将原始文件另存为排序后的原始文本
  3. 选择所有文本,然后通过 Sublime 3Edit -> Permute Lines -> Unique命令删除重复的行
  4. 将修改后的文件另存为无重复排序.txt
  5. 使用 DiffMerge 工具开始差异分析排序后的原始文本无重复排序.txt文件。
  6. 在 DiffMerge 中使用Export -> File Diffs来获取剪贴板中的重复项列表或保存到另一个文件。

相关内容