如何在记事本++中自动选择并向下移动以特定文本开头的行

如何在记事本++中自动选择并向下移动以特定文本开头的行

我有这个文本文件,我需要向下移动一行..反复。

这是原始文件

txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-
txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-
txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-
specific-word txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-
txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-

这是我需要的文件

txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-
txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-
txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-
txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-
specific-word txt-txt-txt-txt-txt-txt-txt-txt-txt-txt-

特定的单词enter code here是相同的,但是行的其余部分不同,我只需要将其向下移动一行。

我使用单击线条后执行的线条操作,并选择将线条向下移动的选项,或者使用键盘快捷键 ctrl shift down

然而,我希望有另一个自动化功能,因为文件真的很大,包含超过 20,000 行需要向下移动。

答案1

  • Ctrl+H
  • 找什么:(^.*?specific-word.*)(\R)(.+)
  • 用。。。来代替:$3$2$1
  • 查看 相符
  • 查看 环绕
  • 查看 正则表达式
  • 取消选中 . matches newline
  • Replace all

解释:

(       # start group 1
  ^       # beginning of line
  .*?     # 0 or more any character but newline, not greedy
  specific-word   # the word to search
  .*      # 0 or more any character but newline
)       # end group 1
(\R)    # group 2, any kind of linebreak
(.+)    # group 3, 1 or more any character but newline

替代品:

$3      # content of group 3, the second line
$2      # content of group 2, linebreak
$1      # content of group 1, the first line

截图(之前):

在此处输入图片描述

截图(之后):

在此处输入图片描述

相关内容