【问题标题】:How to grep two separate logs file? , currently output to only one log file如何grep两个单独的日志文件? , 目前只输出到一个日志文件
【发布时间】:2021-05-09 11:50:49
【问题描述】:

我有以下命令将 shell 脚本输出到文件 RestartLog.log,然后仅将“错误”grep 到另一个文件 RestartLog_ERROR.log

 sudo  ./DailyRestart.sh |sudo tee  /RestartLog.log |grep ERROR | sudo tee /RestartLog_ERROR.log

我有两个问题

  • 问题1:我需要为“警告”和“错误”添加另一个文件“RestartLog_WARNING.log”,可以吗

  • 问题 2: 目前错误输出仅打印到控制台,我需要完整输出到控制台而不是错误输出

请帮我解决这两个问题

【问题讨论】:

    标签: linux shell unix scripting grep


    【解决方案1】:

    只有 STDOUT 会通过您的管道。如果还需要STDERR,需要先重定向到STDOUT:

    sudo  ./DailyRestart.sh 2>&1 | ...
    

    【讨论】:

      【解决方案2】:

      Awk 可能是一个更好的选择:

      ./DailyRestart.sh | awk '/Warning/ { print $0 >> "RestartLog_WARNING.log" } /ERROR/ { print $0 >> "RestartLog_ERROR.log" }1' 
      

      搜索包含“警告”的行并将该行打印到文件 RestartLog_WARNING.log。搜索包含“ERROR”的行并将该行打印到文件 RestartLog_ERROR.log。使用 1 将所有行打印到屏幕。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-21
        • 1970-01-01
        • 1970-01-01
        • 2023-03-10
        • 1970-01-01
        相关资源
        最近更新 更多