在冒号后引用引号之间的值

时间:2017-08-09 12:45:57

标签: linux bash awk sed

我想提取一个参数的值,它用冒号分隔,而参数和值都在双引号之间。

我尝试用awk来做,但是使用冒号作为分隔符不起作用,因为你在值中看到了冒号。

"param1" : "u:user1:A,u:user2:B,u:user3:A,g:group1:A,g:group2:C",

我只想提取这个:u:user1:A,u:user2:B,u:user3:A,g:group1:A,g:group2:C,以便在最后附加一个新值用我的剧本。

由于

2 个答案:

答案 0 :(得分:1)

使用双引号作为分隔符,您可以使用第4个字段:

$ str='"param1" : "u:user1:A,u:user2:B,u:user3:A,g:group1:A,g:group2:C",'
$ value=$( cut -d'"' -f4 <<<"$str" )
$ echo "$value"
u:user1:A,u:user2:B,u:user3:A,g:group1:A,g:group2:C

答案 1 :(得分:1)

尝试使用awk进行跟踪,并告诉我这是否对您有所帮助。

awk -F'"' '{print $4}'   Input_file