【发布时间】:2026-02-10 09:50:01
【问题描述】:
所以我有一个 JSON 文件,其中包含我不想要的行。
我想删除所有有的行
"Voice": "No"
但是有两个条件。例如,下面给出的文件
{
"start": 0.0,
"end": 3.33,
"segmentId": "00001",
"primaryType": "Noise",
"loudnessLevel": "Normal",
"Voice": "No"
},
我希望它是
{
"start": 0.0,
"end": 3.33,
"segmentId": "00001",
"primaryType": "Noise",
"loudnessLevel": "Normal"
},
Normal 之后的, 被删除,以便 JSON 文件结构保持不变。
然而,另一方面,
{
"start": 4.01,
"end": 13.52,
"language": "ja",
"speakerId": "sss",
"transcriptionData": {
"content": "content"
},
"Voice": "No",
"segmentLanguages": [
"j"
]
},
会变成
{
"start": 4.01,
"end": 13.52,
"language": "ja",
"speakerId": "sss",
"transcriptionData": {
"content": "content"
},
"segmentLanguages": [
"j"
]
},
上面的, 保持不变以保持 JSON 格式。
我尝试过sed -i 's/"Voice": "No"/d,但由于缺乏经验,结果适得其反。有没有办法做到这一点?
【问题讨论】:
-
为什么是 sed 而不是 jq? Sed 不理解 JSON 格式。
-
你有
jq或者可以安装吗?