我有一个日志文件,其中一行中有 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