在 Notepad++ 中,如何根据问号后的某个字符对文本文件中的行进行排序?

在 Notepad++ 中,如何根据问号后的某个字符对文本文件中的行进行排序?

我在一个文本文件中有很多测验,其形式如下:

  • 大乐队时代的哪位成员有热门歌曲“宾夕法尼亚 6-5000”? 格伦·米勒
  • 这幅长 201.5 米、宽 1.5 米的 5000 条鲤鱼水彩画是谁创作的?杨海雪
  • 谁写了《5000 年的 UFO - 我们真的孤独吗?》这本书?吉姆·希克曼
  • 这只狗的腹部有一个皮脂囊肿。你建议主人___?别管它
  • 这只狗表现出肺虫的所有典型症状。他很可能吃了___ ?蜗牛
  • 这只狗的牙龈发炎、出血。它很可能患有___?牙龈疾病

我想按照“答案的首字母”对这些行进行排序,例如,所有答案以字母 G 开头的问题都会排列在一起,就像

  • 大乐队时代的哪位成员有热门歌曲“宾夕法尼亚 6-5000”? 格伦·米勒
  • 这只狗的牙龈发炎、出血。它很可能患有___?牙龈疾病

等等

我该怎么做呢?

答案1

您可以使用 3 个步骤来完成此操作。

  1. 进行搜索并通过正则表达式替换,替换^(.*)\?(.*)$\2?\1
  2. 对其进行排序。您可以选择全部 ( Ctrl+ A),然后使用 TextFX → TextFX 工具 → 对行进行不区分大小写的排序(在列中)。
  3. 再次执行步骤1。

基本上,这只是交换问题和答案,然后按第一个字符排序。最后再交换回来。

答案2

我不知道 notepad++ 中是否有这样的功能。但是,如果你使用的是 Linux,这个 shell cmd 就可以完成这个工作。

排序 -t'?' -f -k2 quiz.txt > 输出.txt

输出.txt:

大乐队时代的哪位成员有热门歌曲“宾夕法尼亚 6-5000”? 格伦·米勒
这只狗的牙龈发炎、出血。它很可能患有_?牙龈疾病
这幅长 201.5 米、宽 1.5 米的 5000 条鲤鱼水彩画是谁创作的?杨海雪
谁写了《5000 年的 UFO - 我们真的孤独吗?》这本书?吉姆·希克曼
这只狗的腹部有一个皮脂囊肿。你建议主人不要管它
这只狗表现出肺虫的所有典型症状。他很可能吃了蜗牛

相关内容