如何使用 grep 或其他搜索实用程序最好地搜索一行中 2 个连续单词的 2 个实例

如何使用 grep 或其他搜索实用程序最好地搜索一行中 2 个连续单词的 2 个实例

我有一个日志文件,其中一行中有 2 个连续单词的实例。

例子:

Process ID: 1034 Worker Process 4

我想搜索“进程号“ 和 ”工人进程“ 同上。

单独的词“过程“ 或者 ”ID“ 或者 ”工人“ 也可能作为我不想找到的日志中的单独单词出现

您可以"在 grep 语法中使用标记吗?

不知道如何最好地解决这个问题。谷歌搜索了很多。

感谢您的任何帮助。

答案1

"是的,您可以在 grep 模式中使用。具体你可以使用

grep 'Process ID.*Worker Process' yourfile

匹配两个引用的模式,它们出现在由任意文本分隔的单行中。

grep 与逻辑运算符进行进一步讨论和替代解决方案。

答案2

如果我理解正确的话,我认为这样做可以:

cd your_dir

grep -Ron "Process ID: [0-9]* Worker Process [0-9]*"

进入文件所在目录:

cd your_dir

-R在目录中递归搜索并仅检索o所需的行,n将为您提供行号。


匹配图案Process ID: [0-9]* Worker Process [0-9]*


给定一个包含内容的文件:

Process

Process ID: 1034 Worker Process 4

ID

Worker

输出:

a.txt:3:Process ID: 1034 Worker Process 4
c.txt:7:Process ID: 1034 Worker Process 4
b.txt:7:Process ID: 1034 Worker Process 4

相关内容