gpt4 book ai didi

shell - shell 脚本中的 egrep

转载 作者:行者123 更新时间:2023-12-03 21:52:57 25 4
gpt4 key购买 nike

任何人都可以在这里帮忙。如果 egrep 不可行,其他建议也将受到高度赞赏。

我正在尝试使用“UTL_RECOMP_SLAVE_75”将 egrep 表达式写入 grep ORA-00942,当它位于“UTL_RECOMP_SLAVE_75”字符串的下一行时。但是,应该忽略文件中任何其他行中的 ORA-00942。仅当 ORA-00942 位于下一行后跟“UTL_RECOMP_SLAVE_75”时,才必须对其进行 grepped。

ORA-12012: error on auto execute of job "SYS"."UTL_RECOMP_SLAVE_75"
ORA-00942: <<<<<<<<<<<<<<<<<< should be grepped along with "UTL_RECOMP_SLAVE_75"

ORA-00490: error text is xyz
ORA-00942: <<<<<<<<<<<<<<<< this should be ignored

最佳答案

这是一个简单的 grep 解决方案。

grep -A1 UTL_RECOMP_SLAVE_75 inputfile | grep -B1 ORA-00942

你可以用两块grep来完成。因为 grep 有一个方便的
选项 -An-Bn .

例如。: grep UTL_RECOMP_SLAVE_75 -A3 inputfile
在匹配行后打印 3 行尾随上下文
和 -Bn 选项是:
在匹配行之前打印 n 行前导上下文。
请阅读 man grep .

在这个答案中,我将第一个 grep 传送到了第二个。但是你可以
也可以使用 tmp_file 而不是管道分两步完成,以查看 grep 命令的工作原理。
grep -A1 UTL_RECOMP_SLAVE_75 inputfile >tmp_file
grep -B1 ORA-00942 tmp_file

如果需要,您可以更精确地进行匹配。
例如。:
grep -A1 -w UTL_RECOMP_SLAVE_75 inputfile | grep -B1 -w ^ORA-00942

关于shell - shell 脚本中的 egrep,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62403476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com