我有一个文本文件,其中包含文件名及其扩展名。
苹果.c
橙子.hpp
李子
.h 芒果
.c 香蕉.cpp
葡萄.hpp
我希望上述文本按字母顺序排序,但根据其扩展名分组:即,
苹果
.c 芒果
.c 香蕉.cpp
李子
.h 葡萄.hpp
橙子.hpp
我如何在 Notepad++ 中执行此操作?
我尝试了 TextFX 插件、Linesort 插件和列编辑器。Linesort 插件有一个从右侧对行进行排序的选项,但输出仍然不正确。
答案1
有一个插件“SQL”。它需要标题才能正确使用。我添加了标题,因此文本现在如下所示
COLUMN1.COLUMN2
apple.c
orange.hpp
plum.h
mango.c
banana.cpp
grapes.hpp
选择 N++ 菜单 --> 插件 --> SQL --> 开始
SQL 语句:从数据中选择列 1 c1、列 2 c2,按 c2、c1 排序
分隔符:。
点击‘执行 SQL’按钮。
将创建一个包含以下内容的新文件:
SQL Plugin 1.0.1025
Query : select column1 c1,column2 c2 from data order by c2,c1
Sourcefile : new 6
Delimiter : .
Number of hits: 6
===================================================================================
Query result:
apple.c
mango.c
banana.cpp
plum.h
grapes.hpp
orange.hpp
答案2
除了非标准插件外,还有使用标准插件的方法文本特效许多用户发现 N++ 附带了此插件。它不是特别优雅,但确实有效:
苹果.c 橙色.hpp 梅花 芒果 香蕉.cpp 葡萄.hpp
- 使用查找/替换在文件名前添加扩展名
- 找什么:
^(.*\.(.*))$
- 用。。。来代替:
\2\t\1
- 搜索模式:正则表达式
- “. 匹配换行符”:未选中
c 苹果.c hpp 橙色.hpp h plum.h c 芒果.c cpp 香蕉.cpp hpp 葡萄.hpp
- 编辑 → 线操作 → 排序
c 苹果.c c 芒果.c cpp 香蕉.cpp h plum.h hpp 葡萄.hpp hpp 橙色.hpp
- 使用查找/替换删除临时列
- 找什么:
^.*\t(.*)$
- 用。。。来代替:
\1
- 搜索模式:正则表达式
- “. 匹配换行符”:未选中
苹果.c 芒果 香蕉.cpp 梅花 葡萄.hpp 橙色.hpp