如何在文本文件中选择(删除)每第6(第N)行?

时间:2016-07-09 00:30:09

标签: notepad++

我需要重新格式化类似格式的日志文件并使用Notepad ++宏。

示例:

[00:55:48] Profile Information:

[00:55:48] Name: Joe Bloggs

[00:55:48] Age: 21

[00:55:48] Profile Information:

[00:55:48] Name: Joe Bloggs 2

[00:55:48] Age: 22

我需要格式为:

Joe Bloggs
21
Joe Bloggs 2
22

我可以通过宏中的以下操作执行此操作,但这只能让我到目前为止。

删除时间戳 [[^ []] *]

删除空行 编辑>线路操作>删除空行

替换以下内容 名称: 年龄:

然后我需要选择每个说法,第二行并删除其他所有内容,这样我就会得到每一行的列表 - 例如:

21
22

希望有人更熟悉Regex,这样可以提供指针和建议。

2 个答案:

答案 0 :(得分:4)

我不确定你要求的是什么。 您的标题是关于选择文本文件中的每个第7行,但您的样本与此无关。

无论如何,我猜你想用notepad ++选择文本文件中的每一行。

您可以这样做:

  1. 删除空行:编辑>线路操作>删除空行

  2. 使用Search&替换(在正则表达式模式下)您可以使用以下表达式:

    • 搜索:([^\n]*\n?){7}
    • 替换:$1
  3. <强> P.S。如果你想要另一个第n行,只需替换大括号之间的数字。

答案 1 :(得分:0)

您可以在记事本++中使用ctrl-f进行查找和替换,并输入以下正则表达式:

\[[0-9][0-9]:[0-9][0-9]:[0-9][0-9]] Profile Information:
\[[0-9][0-9]:[0-9][0-9]:[0-9][0-9]]

第一个用“Profile Information”替换该行,第二个用所有时间戳替换。

您可以找到有关正则表达式的信息here。另外,我建议这个cheetsheet有很多帮助。