gpt4 book ai didi

perl - 如何多次使用反向引用?

转载 作者:行者123 更新时间:2023-12-01 08:51:32 25 4
gpt4 key购买 nike

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....

我只想过滤 idvalue 信息。例如在任何过程给我这个之后:

"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 信息?

最佳答案

其他解决方案的简化版本

$ perl -lne 'print join ",", /"[^"]+":\d+/g' dump.data 
"id":123,"value":321,"id":234,"value":432
"id":223,"value":221,"id":224,"value":232
  • "[^"]+":\d+ 要提取的模式
  • join ","使用,作为分隔符来组合提取的模式


仅捕获 idvalue

$ perl -lne 'print join ",", /"(?:id|value)":\d+/g' dump.data
"id":123,"value":321,"id":234,"value":432
"id":223,"value":221,"id":224,"value":232
  • (?:id|value) 限制为仅 idvalue,但在非捕获组中,这样只有整个提取的文本被传递到 join

关于perl - 如何多次使用反向引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40584539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com