用sed代替花括号

bar*_*fly 1 bash sed

我正在解析一些json数据,我需要删除开始和结束花括号{}.我使用sed来执行此操作,但从我可以告诉花括号在sed中执行特殊功能并且转义它们似乎不起作用.以下是我尝试过的几个例子.我真的可以使用正常的表达式.提前致谢!

我试过的第一件事是行不通的.

sed 's/\{\}//g'
Run Code Online (Sandbox Code Playgroud)

我在这里找到答案的一些重做代码.

sed 's/\(\{\|\}\)//g'
Run Code Online (Sandbox Code Playgroud)

hek*_*mgl 6

我会用tr它:

tr -d '{}' < file.json
Run Code Online (Sandbox Code Playgroud)

有了sed它应该是:

sed 's/[{}]//g' file.json
Run Code Online (Sandbox Code Playgroud)

[{}]是一个字符类,意思是{}.

如果要更改文件,请将-i选项传递给sed或使用该sponge工具moreutils.我喜欢它,因为它是通用的,这意味着无论是否支持编辑,它都可以使用任何命令:

sed 's/[{}]//g' file.json | sponge file.json
Run Code Online (Sandbox Code Playgroud)