【问题标题】:How can I search patterns in Screen with a Perl regex?如何使用 Perl 正则表达式在 Screen 中搜索模式?
【发布时间】:2009-05-04 01:09:04
【问题描述】:

我有一个过程可以让我在屏幕中连续输出。我想通过输出中的以下 Perl 正则表达式搜索 CamelCase 单词,以便我可以主动监控输出。

/\b([a-z]*[A-Z][a-z]*){2,}\b/

【问题讨论】:

    标签: regex perl gnu-screen


    【解决方案1】:

    我在 GNU/Screen 中进行了测试并检查了源代码。两者都表明这是不可能的。搜索功能似乎只支持基本的字符串匹配。

    我建议您使用tee 命令将程序的输出发送到一个文件,而不是打印它。之后您可以在文件上使用 Perl 或 grep。

    $ your_program | tee your_program_output
    $ grep pattern your_program_output
    

    【讨论】:

    • 感谢您的回答! - - 你看到在 $man 屏幕上是不可能的吗?
    • 嗯,我在手册页中找不到这个。我使用的是 4.0.3 版。
    • @ayman:你在 Screen 中的默认搜索是什么?我问它是因为我目前无法进行默认搜索。
    • 我不确定您所说的默认搜索是什么意思。这是我搜索滚动缓冲区的方法: * 按 ctrl+a esc。 * 按 ?向后搜索。 * 输入搜索字符串并按回车键。我的 screenrc 中没有什么特别的搜索功能。默认启用。
    【解决方案2】:

    是的,捕获输出并进行搜索。 gnu/screen 不是捕获数据的正确工具,很多事情可能会出错。但显然你仍然可以在屏幕会话中运行它。

    【讨论】:

      【解决方案3】:

      如果你已经在不使用 tee 的情况下在 screen 内运行程序并且不想再次运行它,assuming your scrollback buffer is large enough,你可以copy the entire scrollback buffer to a file,然后用你喜欢的方法搜索。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-30
        • 2021-02-09
        • 1970-01-01
        相关资源
        最近更新 更多