You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shell中如何修改sed命令删除JSON文件指定行?

解决sed删除package.json特定行的问题

我来帮你搞定这个sed命令的问题~你原来的命令之所以不生效,是因为缺少了删除动作的指令,而且匹配规则也没写完整。

正确的命令写法

根据你用的是macOS(BSD sed)还是Linux(GNU sed),命令略有区别:

1. macOS(BSD sed)环境

你之前用了-i ''的写法,这是macOS sed的语法,正确的完整命令应该是:

sed -i '' '/"electron-inspector": "0.1.4",/d' ./package.json
  • 核心是/匹配内容/d:d是sed的删除指令,意思是找到匹配双引号内那行内容的行,直接删除
  • 要完整匹配行里的内容,包括引号、版本号和末尾的逗号,这样才不会误删其他行

2. Linux(GNU sed)环境

GNU sed不需要-i后面的空参数,命令简化为:

sed -i '/"electron-inspector": "0.1.4",/d' ./package.json

额外注意事项

如果这行是package.json里最后一个依赖项,它的末尾可能没有逗号,这时候可以调整匹配规则,兼容带/不带逗号的情况:

  • macOS版本:
    sed -i '' '/"electron-inspector": "0.1.4"[,\s]*$/d' ./package.json
    
  • Linux版本:
    sed -i '/"electron-inspector": "0.1.4"[,\s]*$/d' ./package.json
    

这里的[,\s]*$表示匹配行末的0个或多个逗号/空白字符,覆盖不同格式的情况。

另外,操作前建议先测试效果,去掉-i参数运行命令,先查看删除后的输出是否符合预期,确认没问题再修改原文件:

sed '/"electron-inspector": "0.1.4",/d' ./package.json

内容的提问来源于stack exchange,提问作者Tino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:24:14