嗨我有一个带5000
行的json文件,很多行的一部分遵循相同的模式:
[
{"a":"c", "b":"e", "i":"a"},
{"a":"c", "b":"/", "i":"a"},
{"a":"c", "b":"/", "i":"a"},
{"a":"c", "b":"e/esa", "i":"a"},
{"a":"i", "b":"a/e/", "i":"ah"},
]
我希望删除"b":"/"
的所有行,我想要这个最终文件:
[
{"a":"c", "b":"e", "i":"a"},
{"a":"c", "b":"e/esa", "i":"a"},
{"a":"i", "b":"a/e/", "i":"ah"},
]
我怎样才能在Bash中做到这一点?感谢。
答案 0 :(得分:0)
以下是使用sed
的一种解决方案:
$ sed -i '/ b:\/,/'d x.j
答案 1 :(得分:0)
修改以回答更新的问题:
使用sed:
$ cat testfile
[
{"a":"c", "b":"e", "i":"a"},
{"a":"c", "b":"/", "i":"a"},
{"a":"c", "b":"/", "i":"a"},
{"a":"c", "b":"e/esa", "i":"a"},
{"a":"i", "b":"a/e/", "i":"ah"},
]
$ sed -i '/"b":"\/",/d' testfile
$ cat testfile
[
{"a":"c", "b":"e", "i":"a"},
{"a":"c", "b":"e/esa", "i":"a"},
{"a":"i", "b":"a/e/", "i":"ah"},
]
答案 2 :(得分:0)
@ marc-b Soultion非常好用,谢谢!
grep -v 'b:/' file.txt > newfile.txt