我试图删除线与现有线路的最后一个字符用的sed:如何删除前行的最后一个字符用sed的
我有一个JSON文件:
{
"name":"John",
"age":"16",
"country":"Spain"
}
我想删除所有条目的国家,为此我必须删除前一行的json语法的逗号。
我使用这个模式:
sed '/country/d' test.json
sed -n '/resolved//.$//{x;d;};1h;1!{x;p;};${x;p;}' test.json
编者按:
的OP后来澄清了以下额外要求,这无效现有的一些答案:
- 发生的country
属性应删除
- 所有级别的对象层次
的 - 空白的差异应该被容忍
我想知道为什么'sed'? 有很多能够解析JSON的工具。考虑使用'jq','perl','php',或者内置JSON解析器的东西。 –
我更喜欢SHELL,因为我将在jenkins工作中使用该命令。 –
“我更喜欢SHELL”:有些工具可以用来从shell脚本操作json。例如jq。 – njzk2