嗨,我正在文件中使用以下内容,我希望打印shortversion的值,

{
    "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输出是正确的,但文件正在获取动态生成的,需要您的宝贵帮助

最佳答案

使用诸如jq之类的命令行JSON解析器来解析JSON输入更具模块化。如果将来您的JSON对象树发生更改,维护脚本会更容易。

您可以使用以下命令获取shortversion数组的第一个元素:

jq -r ". |  .app_versions[1].shortversion" your_file.json

关于linux - 搜索字符串的首次出现并在linux中打印其值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38607259/

10-13 08:38