linux - 模式匹配日志文件

标签 linux perl

我在文件夹中获取 .log 和 _log 之类的文件,我可以使用/*.log$/选择 .log 文件,但无法找到 _log 文件。

需要一个正则表达式模式,它将从指定文件夹中获取两种类型的文件。

最佳答案

您的问题被标记为“perl”和“linux”。我在这里假设您正在谈论 Perl 风格的正则表达式,因为看起来这就是您在示例片段中显示的内容。

*. 序列是错误的。

让我们专注于您要匹配的内容。您想要匹配以点结尾且后跟文字字符“log”的任何文件名。您还希望匹配任何以下划线结尾、后跟文字字符“log”的文件名。你真的不应该关心最后一个点或下划线之前的“任何东西”。所以正则表达式可能会更好地写成这样:

/[._]log$/

请注意,我们甚至不用理会点星号。它在这种情况下没有帮助。

如果您希望您的模式也匹配文字字符“log”后面可以选择跟随一个整数序列的文件(您的问题中未提及,但在您的后续评论之一中讨论),您可以这样写这个:

/[._]log\d*$/

这里的“星标”很有帮助;它允许零个或多个数字夹在“g”和字符串末尾之间。

关于linux - 模式匹配日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10994159/

相关文章:

linux - 当我使用 "cd//"时,linux bash 中发生了什么?

c++ - Linux:作为共享对象 API 的 C++ 抽象类

perl - 在散列中的小写键值之前对大写字母进行排序

javascript - 防止我的 node.js 应用程序被操作系统杀死

c++ - 除了静态库之外,我还可以将共享库与 "gcc -llibnamehere"绑定(bind)吗?

PHP CLI - STDIN - 或 - 重新加载脚本

Perl for 循环失控

perl - 为什么在使用 Mechanize 获取文件时会收到内部服务器错误?

perl - 如何找到已安装 Perl 模块的版本?

perl - 多站点感知 PSGI 应用程序开发