【发布时间】:2017-03-14 14:32:54
【问题描述】:
我正在尝试使用 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。