【问题标题】:Output Text between 2 lines using filtering option使用过滤选项在两行之间输出文本
【发布时间】:2020-08-03 15:22:33
【问题描述】:

我们正在使用 EMEditor 对大型文本文件进行日志文件分析。我们有以下要求。
在日志文件中,有很多这种格式的表:

+----------------------+
|Column1|Column2|Colum3|
+-------+-------+------+
|Data1  |Data2  |Data3 |
|Data4  |Data5  |Data6 |
+-------+-------+------+
| Number of Records: 2 |
+----------------------+

页眉和页脚之间的文字非常动态;它之间可以是 0 或 x 线。

我会以这种方式使用过滤器选项,例如我输入|Column1 使用开始过滤器和| Number of Records: 作为结束过滤器。 EMEditor 应该过滤开始和结束过滤器之间的所有记录(包含找到的过滤器模式的行)。

我看到了,目前只能输出filter pattern上下的行,但这不是可行的办法。

我怎样才能做到这一点?

【问题讨论】:

    标签: emeditor


    【解决方案1】:

    如果+| 字符仅用于表格,您可以按这些字符过滤表格。为此,您可以单击过滤器工具栏中的高级过滤器按钮,单击添加按钮并输入+,单击再次添加按钮输入|,并将Logical Disjunction (OR) to the Previous Condition选项设置为列表中的第二项。最后,点击Filter按钮。

    更新

    下载 EmEditor v20.0.902 或更高版本,并使用高级过滤器中的开始过滤器结束过滤器选项。

    如果您想使用宏,这是一个适合您的宏:

    filters = document.filters;
    filters.Clear();
    filters.AddFind( "|Column1", eeFindReplaceCase, eeExFilterBegin );
    filters.AddFind( "| Number of Records:", eeFindReplaceCase, eeExFilterEnd );
    document.filters = filters;
    

    您可以在打开数据文件后运行此宏。为此,请将此代码另存为 Filter.jsee,然后从 Macros 菜单的 Select... 中选择此文件。最后,打开您的数据文件,并在您的数据文件处于活动状态时选择菜单中的运行

    【讨论】:

    • 感谢您的回答。问题是,日志文件中存在具有不同列数和列标题标签的不同表。我们希望使用作为开始过滤器,例如表格上方的列标题标签“Column2”来过滤来自一种类型的表格;结束过滤器与我的整个帖子中的相同。结果应该以上述格式输出所有“找到”的表格(第一行和最后一行= +----------------------+除外)。
    • 很遗憾,您不能在 EmEditor 中指定“开始过滤器”或“结束过滤器”。如果您想排除任何带有+----------------------+ 的行,您可以在高级过滤器中添加一个条目,并设置 Negative 选项。
    • 首先,我们购买了 EmEditor 的主要特点:速度;很棒的产品!有没有机会在 EmEdior 的未来版本中实现这样的功能?我知道必须考虑许多因素:其他客户的利益、需求的复杂性、实施时间、当前实施的副作用以及许多其他事情。
    • 下一个版本将在高级过滤器对话框中包含开始过滤器结束过滤器选项。我很快就会发布下一个测试版。
    • 我现在非常兴奋。这正是我们所需要的。我试过了,效果很好。非常感谢你。大力支持。
    【解决方案2】:

    这必须通过过滤器完成吗?是否不能使用标准的 Find 方法来隔离/选择表数据?例如Ctrl-F。单击高级并确保选中“正则表达式“。”可以匹配换行符。将Additional lines to Search for RegEx设置为高于您预期的数字最大的表。

    点击确定,然后查找(选择正则表达式):

    (?

    单击“全选”,这有望仅捕获表格,您现在可以用它做您想做的事情(单击“提取”按钮、复制、剪切等)。

    【讨论】:

    • 谢谢,我会试试这个并报告结果,这可能需要一段时间:)
    猜你喜欢
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 2011-06-21
    • 1970-01-01
    • 2013-02-23
    • 2018-08-24
    相关资源
    最近更新 更多