您好我在文件中使用以下内容,我希望打印短版的值,
{
"app_versions": [
{
"version": "15",
"shortversion": "0.0.15",
"title": "java expert",
"timestamp": 1469530069,
"appsize": 3436229,
"notes": ,
"mandatory": false,
"external": false,
"device_family": null,
"id": 9,
"app_id": 356250,
"minimum_os_version": "4.1",
,
{
"version": "7",
"shortversion": "0.0.7",
"title": "java expert",
"timestamp": 1469528889,
"appsize": 3436225,
,
{
"version": "3",
"shortversion": "0.0.3",
"title": "javaExpert",
"timestamp": 1469209202,
"appsize": 3420965,
如何使用sed打印第一次出现的短版本的值,我使用了以下awk命令来获取shortversion awk -F'"' '/\"shortversion\"/{print $10;}'
read.version此命令正在生成0.0.15
的输出,这是正确,但文件是动态生成的,需要您的宝贵帮助
答案 0 :(得分:0)
使用命令行JSON解析器(如jq
)解析JSON输入更加模块化。如果JSON对象树将来发生变化,维护脚本会更容易。
您可以使用以下内容获取shortversion
数组的第一个元素app_versions
:
jq -r ". | .app_versions[1].shortversion" your_file.json
答案 1 :(得分:0)
也许你可以改变限定符':';例如 awk -F“:”'/ shortversion / {print $ 2}'数据文件 然后使用'sed'替换','和''';