查找2个字符串之间的所有内容–Sed

我有包含以下格式数据的文件。

{"default":true,"groupADG":["ABC","XYZ:mno"],"groupAPR":true}
{"default":true,"groupADG":["PQR"],"groupAPR":true} 

我正在尝试将输出作为

"ABC","XYZ:mno"
"PQR"

我尝试使用 sed 来做,但在某处我出错了。

 sed -e 's/groupADG":[(.*)],"groupAPR"/1/    file.txt

问候。

注意:如果有人对这个问题的评价是否定的,我也会要求给出同样的理由。由于我试图自己修复它,因为我无法做到,所以我把它贴在这里。我也给出了我的试验示例。

回答

这是一种潜在的解决方案:

sed -n 's/.*([[].*[]]).*/1/p' file.txt

要排除括号:

sed -n 's/.*([[])(.*)([]]).*/2/p'

此外,这可以使用 AWK:

awk -F'[][]' '{print $2}' file.txt

请注意边缘情况(例如,如果同一行中有多个带方括号的字段,您可能需要不同的策略)


以上是查找2个字符串之间的所有内容–Sed的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>