【问题标题】:Shell script : sed command is ignoring INFO lines given main 2>&1Shell 脚本:sed 命令忽略给定主 2>&1 的 INFO 行
【发布时间】:2016-10-17 13:12:27
【问题描述】:

main 2>&1 提供 INFO、ERROR 和 Running 状态行。 但是当我在它上面使用 sed 时,它会给出 INFO 和 Running 状态行以及 ERROR 行,但它们的顺序不是必须的。

Jumbled status are at the end after job executed succefully.

main 2>&1 | sed "/ERROR.*[0-9]\{1\}.[0-9]\{1\}.[0-9]\{1\}.[0-9]\{1\}-[0-9]\{3\}.*20[0-9]\{2\}-[0-9]\{2\}-[0-9]\{2\}_[0-9]\{2\}-[0-9]\{2\}-[0-9]\{2\}.*(stderr)/ s/ERROR/NOTE/" | tee -a $log_file

这些是我使用 sed 命令后缺少的行:

【问题讨论】:

  • 如果您可以在问题中添加文本输入会更好。请详细说明您的问题(您要做什么)。
  • 发布文本本身,而不是文本图像的链接。

标签: linux shell unix sed main


【解决方案1】:

如果您在 sed 中附加 /\(Running\|INFO\ERROR... 如下所示,这也可以打印 Running 和 info 以及 ERROR 行

main 2>&1 | sed "/\(Running\|INFO\|ERROR.*[0-9]\{1\}.[0-9]\{1\}.[0-9]\{1\}.[0-9]\{1\}-[0-9]\{3\}.*20[0-9]\{2\}-[0-9]\{2\}-[0-9]\{2\}_[0-9]\{2\}-[0-9]\{2\}-[0-9]\{2\}.*(stderr)\)/ s/ERROR/NOTE/" | tee -a $log_file

【讨论】:

  • 它不工作。它只是重复日志文件中现有的状态行。
  • 即使现在结果也是一样的。随机放置的行(中间某处),它们必须在顶部,因为该 INFO 是关于开始工作的。
  • 你能把sed命令改成awk命令吗?这可能适用于这个问题。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-17
  • 2021-05-15
相关资源
最近更新 更多