awk命令

語言: CN / TW / HK

1,提取json中的某個key的值

假設有一段這樣的json字串,想從它裡面提取出 phone 這個欄位的 值,也就是 "13012345678",

{"phone":"13012345678","name":"abc","age":"21"}

可以用

# 正則:\"([^\"]*)\",匹配後取陣列a第0個元素。
echo '{"phone":"13012345678","name":"abc","age":"21"}' | awk -F '"phone":' 'match($2,/\"([^\"]*)\"/,a){print a[0]}'

輸出

"13012345678"

如果要去掉雙引號,則用

echo '{"phone":"13012345678","name":"abc","age":"21"}' | awk -F '"phone":' 'match($2,/\"([^\"]*)\"/,a){print a[1]}'

輸出

13012345678

還有一種簡單一點的寫法,需要用到 jq 命令

echo '{"phone":"13012345678","name":"abc","age":"21"}' | jq -r '.phone'

輸出

13012345678

 

2,