【问题标题】:Shell script for Grepping/retrieving value from text log file (sqlcode field value)用于从文本日志文件中提取/检索值的 Shell 脚本(sqlcode 字段值)
【发布时间】:2018-10-28 21:09:50
【问题描述】:

您好,我需要从运行 sql 语句后生成的输出文件中检索 sqlcode 值。

下面的 sqlcode 的以下值显然是 0,我需要能够从多个语句块中获取该值,格式如下。

我不能使用 GNU 函数 - grep/sed/awk 可能有效,但我自己无法使用它们获取 sqlcode 值...

Outfile 将如下所示:

SQLCA Information

sqlcaid : SQLCA     sqlcabc: 136   sqlcode: 0   sqlerrml: 0

sqlerrmc:

 sqlerrp : SQLRI01F

sqlerrd : (1) -2147221503      (2) 1                (3) 4

           (4) 0                (5) 0                (6) 0

sqlwarn : (1)      (2)      (3)      (4)        (5)       (6)

           (7)      (8)      (9)      (10)       (11)

sqlstate: 00000

【问题讨论】:

  • 听起来像是一道作业题...How do I ask homework questions on Stack Overflow。你应该努力。
  • 请编辑您的 Q 以展示您解决问题的最佳尝试。(您认为应该可行的方法);如果我们不知道您尝试了什么,我们无法帮助您提高理解。祝你好运。

标签: linux bash shell grep sqlcode


【解决方案1】:
sed -n '/sqlcode: /s/.*sqlcode: \([0-9]\+\) .*/\1/p'

如果该行有字符串“sqlcode:”,则替换所有内容并记住字符串“sqlcode:”之后和空格之前的一个或多个数字并打印记住的部分。

tutorialspoint 提供实时版本。

【讨论】:

  • 感谢您的回答..我知道这是如何工作的,但是....我将 sed 包装在脚本中的变量中 var=$(sed -n '/sqlcode: /s/.* sqlcode: ([0-9]\+) .*/\1/p' file.out) 并且当我在 linux AIX 服务器上的脚本中实现这个时,file.out 在同一目录中,它什么都不返回。 . 我不太明白我尝试将它作为 shell 和 bash 运行
【解决方案2】:

awk '/sqlcode/ {print $7}' 文件

0

awk 在文件中查找默认值/sqlcode/

print $7 打印第七个字段

【讨论】:

    猜你喜欢
    • 2018-06-29
    • 1970-01-01
    • 1970-01-01
    • 2022-11-14
    • 1970-01-01
    • 2015-11-04
    • 2019-10-15
    • 1970-01-01
    相关资源
    最近更新 更多