[英]Grep for multiple words in log files
我有包含以下内容的文件:
--------------------------------
service=serviceX
time=100ms
PARAMS={"data"=>"{\"id\":1,\"items\":[{\"quantity\":1,\"name\":\"itemName1\"
,\"quantity\":2,\"name\":\"itemName2\"}]}
------------------------------------------------
--------------------------------
service=serviceX
time=200ms
PARAMS={"data"=>"{\"id\":2,\"items\":[{\"quantity\":2,\"name\":\"itemName3\"
,\"quantity\":2,\"name\":\"itemName4\"}]}
------------------------------------------------
--------------------------------
service=serviceX
time=300ms
PARAMS={"data"=>"{\"id\":3,\"items\":[{\"quantity\":1,\"name\":\"itemName5\"
,\"quantity\":2,\"name\":\"itemName6\"}]}
------------------------------------------------
我正在尝试查找文件中列出的所有项目。 我的查询看起来像
grep -o 'name\\":\\"[^\\]*\\"' | tr -d '\\"'
输出是
name:itemName1
name:itemName2
name:itemName3
name:itemName4
name:itemName5
name:itemName6
我想要这样的输出:
id:1
name:itemName1
name:itemName2
id:2
name:itemName3
name:itemName4
id:3
name:itemName5
name:itemName6
我是linux新手,不知道如何在单个查询中对多个单词进行grep。
或使用替代元字符 :
grep -oP 'name\\":\\"[^\\]*\\|id\\":[^,]*' | tr -d '\\"'
↑
|__________________| |____________|
look for this or that
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.