任何人都可以建议一种比我到目前为止所得到的更好/更简洁的方法来从 Json 对中提取值,请...
我的 Json 对是
{"myKeyName":"myKeyValueVariableLength"}
存储在 myFile.txt 中,我只想要 KeyValue (不带引号)。我目前拥有的是:
#!/bin/bash
PAIR=$(<myFile.txt)
IFS=': ' read -a arr <<< $PAIR
ONE="${arr[1]%?}"
TWO="${ONE%?}"
THREE=${TWO#'"'}
echo $THREE
这对我有用,但我猜还有更简洁的方法吗?我听说过 jsawk,但如果可能的话,我想尝试在 bash 中完成所有操作。
Tks
Bash 包含一个内置的正则表达式测试,其形式为[[ string =~ regex ]]
。运行后,捕获的子模式存储在名为的数组中$BASH_REMATCH
处理引号和转义有点麻烦/神奇,所以我花了一段时间才开始工作,但这似乎有效:
PAIR='{"myKeyName":"myKeyValueVariableLength"}'
[[ $PAIR =~ ^\{\"([^\"]+)\":\"([^\"]+)\"\}$ ]] && echo "The key is ${BASH_REMATCH[1]} and the value is ${BASH_REMATCH[2]}"
[或者,按照 Unix 方式执行,然后调用sed
, awk
, perl
, python
, php
,或者您安装的任何可以让您的生活更轻松的东西。类似的东西php -r "print_r( json_decode('"$PAIR"') );"
例如...]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)