【发布时间】:2017-03-27 20:12:37
【问题描述】:
dump.data 如下:
x"xxx":111,"xxxx":2222,xxxx"id":123,xxxxxx"value":321,xxxxxx"id":234,xxxxxx"value":432,xx
x"xxx":yyy,"xxxx":zzz,xxxx"id":223,xxxxxx"value":221,xxxxxx"id":224,xxxxxx"value":232,xxxx....
我只想过滤 id 和 value 信息。例如在任何过程给我这个之后:
"id":123,"value":321,"id":234,"value":432
"id":223,"value":221,"id":224,"value":232
我想到的是使用反向引用,即 sed:
sed 's|.*\("id":[0-9]*\).*\("value":[0-9]*\).*|\1,\2|' dump.data
这给了我这个:
"id":234,"value":432
"id":224,"value":232
但是我怎样才能获得所有 id 和 value 信息?
【问题讨论】:
-
这可能有助于第一步:
grep -o '"[^,]*' dump.data -
感谢您的宝贵时间,问题已更新。 @赛勒斯
-
这可能有助于作为第二步:
grep -oE '"(id|value)[^,]*' dump.data -
明白你的意思!谢谢! @赛勒斯
-
并附加
| tr '\n' ','(用,替换每个换行符),最后一步找到删除尾随,的方法。