【问题标题】:How to select (remove) every 6th (Nth) line in a text file?如何在文本文件中选择(删除)每第 6(N)行?
【发布时间】:2016-07-09 00:30:08
【问题描述】:

我需要重新格式化类似格式的日志文件,并且一直在使用 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 等的人能够提供指点和建议。

【问题讨论】:

    标签: notepad++


    【解决方案1】:

    我不确定您的要求。 您的标题是关于选择文本文件中的每 7 行,但您的示例与此无关。

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

    你可以这样做:

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

    2. 通过搜索和替换(在正则表达式模式下),您可以使用此表达式:

      • 搜索:([^\n]*\n?){7}
      • 替换:$1

    附注如果你想要另一个第 n 行,只需替换大括号之间的数字即可。

    【讨论】:

      【解决方案2】:

      您可以在 notepad++ 中使用 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]]
      

      第一个用“配置文件信息”替换该行,第二个替换所有时间戳。

      您可以找到有关正则表达式的信息here。我也推荐这个cheetsheet,这很有帮助。

      【讨论】:

        猜你喜欢
        • 2012-04-11
        • 2022-10-01
        • 1970-01-01
        • 2019-05-31
        • 2021-06-20
        • 1970-01-01
        • 2013-12-20
        • 2016-10-22
        • 1970-01-01
        相关资源
        最近更新 更多