Abh*_*ava 2 sed awk shell-script
我有一个字符串,它是由“,”分隔的“键”:“值”对的串联,例如-
KEY1:VALUE1, KEY2:VALUE2, KEY3:VALUE3
Run Code Online (Sandbox Code Playgroud)
从这个字符串中,我必须对一个特定的字符串进行 grep——比如说 KEY2——所以我们的命令的输出应该是 VALUE2。
使用启用 PCRE 的grep实现:
grep -Po '(^|[ ,])KEY1:\K[^,]*'
Run Code Online (Sandbox Code Playgroud)
或egrep和cut:
grep -Eo '(^|[ ,])KEY2:[^,]*' | cut -d: -f2-
Run Code Online (Sandbox Code Playgroud)
对于这两种方法,值都不允许包含逗号。
如果你有适当的json,例如
{ "KEY1":"VALUE1", "KEY2":"VALUE2", "KEY3":"VALUE3" }
Run Code Online (Sandbox Code Playgroud)
你可以使用jq:
$ jq .KEY2
"VALUE2"
$ jq -r .KEY2
VALUE2
Run Code Online (Sandbox Code Playgroud)