Grep 查找同一行上的多个字符串

问题描述 投票:0回答:1

如何在 shell 上打印输出以仅显示包含以下 2 个字符串的行,而我不想看到任何其他行。

Changing
66824113

日志上的行是:

25 Jul 2024 08:25:41,252 [AWT-EventQueue-0] INFO : Changing TOTAL_QUANTITY to 5080000.00000000 trade_leg [66824113][1][]

25 Jul 2024 08:25:41,303 [AWT-EventQueue-0] INFO : Changing ACCRUED_INTEREST to 91763.85 trade_leg [66824113][1][]

现在我只想查看那些包含字符串“Changing”和“66824113”的行。

我尝试了很多命令,但似乎没有任何效果,因为它总是与我想要的行一起打印其他行,但我不想看到其他行。

  1. grep -E '更改。*[66824113]' '文件名'

  2. grep -P '(?=.?更改) (?=.?66824113)' '文件名'

  3. cat '文件名' | awk '/更改/ && /[66824113]/

以上3点没有达到我的目的。

grep
1个回答
0
投票

如果我正确理解你想要的问题:

-e 模式,--regexp=模式

使用 PATTERNS 作为图案。 如果多次使用此选项或与 -f (--file) 选项结合使用,则搜索 给出的所有模式。 该选项可用于保护模式 以“-”开头。

示例:

cat '文件名' | grep -e 更改 -e 66824113

© www.soinside.com 2019 - 2024. All rights reserved.