答案1
操作 json 文件的一个更好的工具是杰奇.jq 理解 json,因此它将确保其输出是一个有效的 json 文件。
你可以通过运行来安装 jq
sudo apt install -y jq
然后
jq 'del(.date_unixtime)' 1n6Envrionment2.json
例如,将删除 date_unixtime 字段,类似地
jq 'del(.text_entities)' 1n6Envrionment2.json
将删除 text_entities 及其所有子项。jq 有一个广泛的匹配能力对于它的过滤器,因此您可以多次运行它,或者根据您想要删除的内容,您可以构建一个删除所有内容的过滤器。
答案2
Grep 可以做到这一点。要排除包含单词 的行date
:
grep -v "date" 1n6Envrionment2.json
要排除更多单词,请使用转义符分隔|
,如下所示:
grep -v "date\|date_unixtime\|edited" 1n6Envrionment2.json
> 1n6Envrionment2.json
如果您想立即写入更改,可以重定向回同一个文件( )。
答案3
该解决方案与@Artur Meinild 的解决方案类似
示例任务
删除所有行,包括thisname
或othername
示例文件名
There is one line
then another
but then there is thisname
and then there is not
then othername
then both thisname and othername
示例代码
grep -vE "thisname|othername" filename
这使用正则表达式,因此据我所知,它比 Meinild 给出的解决方案更强大。
如果只想匹配完整的单词,请使用:
grep -vE "[ ]{0,1}thisname[ ]{0,1}|[ ]{0,1}othername[ ]{0,1}" filename
这意味着单词周围只能有一个空格或者没有任何内容。
示例输出
There is one line
then another
and then there is not