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

如何根据正则表达式删除文本文件指定行,修复不符合要求的JSON行

可行解决方案

你的需求核心是所有以"},结尾的行全部保留,其余行删除,可直接用以下两种方案实现:

方案1:使用sed实现

执行以下命令即可,如需直接修改原文件,可添加-i参数:

# 仅输出处理后内容,不修改原文件
sed '/"},$/!d' test.json

# 直接修改原文件
sed -i '/"},$/!d' test.json

命令逻辑说明:/"},$/匹配所有以"},结尾的行,!d表示不删除匹配到的行,其余不符合规则的行全部删除,刚好匹配你的需求。

方案2:使用grep实现(写法更简洁)

如果你不限制工具,用grep实现逻辑更直观:

# 仅输出处理后内容,如需保存到新文件可追加 > new_test.json
grep '"},$' test.json

这个命令会直接过滤出所有以"},结尾的行,其余内容直接丢弃,效果和sed方案完全一致。


原命令失效原因

  1. sed默认使用基础正则表达式(BRE)语法,+需要转义为\+才能表示「匹配1次及以上」的语义,你写的[^"]+里的+会被当成普通字符匹配,规则自然失效
  2. 原规则没有绑定行尾匹配,容易误命中行中间的内容,逻辑不符合你的实际需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 20:36:05