【发布时间】:2021-09-17 17:07:21
【问题描述】:
我正在尝试获取 id 值但不能。我还尝试使用\" 转义"
text="Id": "d246ad6f48f7"
[[ "${text}" =~ (.*)": "(.*)" ]]
echo ${BASH_REMATCH[2]}
【问题讨论】:
-
以后请先搜索一下您的问题是否已经被问过。这回答了你的问题了吗? bash regex with quotes?
我正在尝试获取 id 值但不能。我还尝试使用\" 转义"
text="Id": "d246ad6f48f7"
[[ "${text}" =~ (.*)": "(.*)" ]]
echo ${BASH_REMATCH[2]}
【问题讨论】:
调用text="Id": "d246ad6f48f7" 返回错误d246ad6f48f7: command not found。你应该打电话给text='"Id": "d246ad6f48f7"'。但在 bash 正则表达式中很难匹配 "。我建议像这样使用sed:
echo '"Id": "d246ad6f48f7"' | sed -E '{s/"(.*)": "(.*)"/\2/}'
d246ad6f48f7
sed的解释:
-E 扩展正则表达式\2第二个反向引用【讨论】: