使用 linux 命令添加到文件

Add to file using linux command

我有以下文件

{
   "param-key1": [{
   "parm-value1": [{
        "dev": "06:00",
        "prod": "09:00"
    }]
}],
    "param-key2": [{
   "parm-value2": [{
        "dev": "06:00",
        "prod": "09:00"
    }]
}],
   "param-key3": [{
   "parm-value3": [{
        "dev": "06:00",
        "prod": "09:00"
    }]
}]
}

现在我想添加(在上面的文件中)像下面这样在不同的文件中。

 "param-key4": [{
   "parm-value4": [{
        "dev": "06:00",
        "prod": "09:00"
    }]

需要一些帮助来使用 sed 或 awk 或使用其他 linux 命令来实现此目的。很遗憾,我们无法在我的帐户中使用 jq。

预期输出。


{
     "param-key1": [{
   "parm-value1": [{
        "dev": "06:00",
        "prod": "09:00"
    }]
}],
    "param-key2": [{
   "parm-value2": [{
        "dev": "06:00",
        "prod": "09:00"
    }]
}],
   "param-key3": [{
   "parm-value3": [{
        "dev": "06:00",
        "prod": "09:00"
    }]
}],
"param-key4": [{
   "parm-value4": [{
        "dev": "06:00",
        "prod": "09:00"
    }]
}

使用“ed”:

ed filename << EOF
/}$
i
"param-key4": [{
   "parm-value4": [{
        "dev": "06:00",
        "prod": "09:00"
    }]
.
w
q
EOF

注意:未经测试

这可能是您想要做的,在每个 Unix 机器上使用任何 shell 中的任何 awk:

$ awk 'NR==FNR{new=new [=10=] ORS; next} /^}]$/{printf "}],\n%s", new} 1' file2 file1
{
   "param-key1": [{
   "parm-value1": [{
        "dev": "06:00",
        "prod": "09:00"
    }]
}],
    "param-key2": [{
   "parm-value2": [{
        "dev": "06:00",
        "prod": "09:00"
    }]
}],
   "param-key3": [{
   "parm-value3": [{
        "dev": "06:00",
        "prod": "09:00"
    }]
}],
 "param-key4": [{
   "parm-value4": [{
        "dev": "06:00",
        "prod": "09:00"
    }]
}]
}