【发布时间】:2019-02-18 05:12:16
【问题描述】:
如何将 xargs 提供给 piped grep 以获取 piped cat 命令。
命令 1: (为特定日期时间生成具有唯一 PID 的 grep 模式,从 runtime.log 读取)
cat runtime.log | grep -e '2018/09/13 14:50' | awk -F'[ ]' '{print $4}' | awk -F'PID=' '{print $2}' | sort -u | xargs -I % echo '2018/09/13 14:50.*PID='%
上面命令的输出是(自定义的grep模式):
2018/09/13 14:50.*PID=13109
2018/09/13 14:50.*PID=14575
2018/09/13 14:50.*PID=15741
命令 2: (读取 runtime.log 并根据 grep 模式获取适当的行(理想情况下,grep 模式应该来自命令 1))
cat runtime.log | grep '2018/09/13 14:50.*PID=13109'
问题是如何结合Command 1和Command 2
以下组合版本的命令没有给出预期的输出(产生的输出的日期不是“2018/09/13 14:50”)
cat runtime.log | grep -e '2018/09/13 14:50' | awk -F'[ ]' '{print $4}' | awk -F'PID=' '{print $2}' | sort -u | xargs -I % echo '2018/09/13 14:50.*PID='% | cat runtime.log xargs grep
【问题讨论】:
-
更好地描述样本输入和预期输出。请阅读MCVE
-
grep -f <(command 1)你在找什么吗?
标签: bash shell grep command xargs