假设我们有像这样的键值对:
ts=2017-06-27-19-59-13-036 | result=SUCCESS | requestId=xyz | elapsed=49
如何输出多个键值对;假设结果在上一行已经过去了[根据键名而不是位置搜索键]
我想要这样的输出: 结果=成功 |经过=49
感谢帮助
最佳答案
使用 grep -oP
:
s='ts=2017-06-27-19-59-13-036 | result=SUCCESS | requestId=xyz | elapsed=49'
grep -oP '(result|elapsed)=\S+' <<< "$s"
result=SUCCESS
elapsed=49
或者使用gnu awk
:
awk -F= -v RS=' \\| |\n' '$1 ~ /^(result|elapsed)$/' <<< "$s"
result=SUCCESS
elapsed=49
关于linux - Grep 查找行中的多个值并仅输出多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44783089/