我正在解析一些 json 数据,我需要删除开头和结尾的大括号 {}。我正在使用 sed 执行此操作,但据我所知,花括号在 sed 中执行特殊功能并且转义它们似乎不起作用。以下是我尝试过的几个例子。我真的可以使用一个有效的正则表达式。提前致谢!
我尝试的第一件事不起作用。
sed 's/\{\}//g'
我在这里找到的答案中的一些重做代码。
sed 's/\(\{\|\}\)//g'
最佳答案
我会使用 tr
:
tr -d '{}' < file.json
使用 sed
应该是:
sed 's/[{}]//g' file.json
[{}]
是一个字符类,表示 {
或 }
。
如果您想更改文件,请将 -i
选项传递给 sed
或使用 sponge
来自 moreutils
的工具.我喜欢它,因为它是通用的,这意味着它可以与任何命令一起使用,无论它是否支持就地编辑:
sed 's/[{}]//g' file.json | sponge file.json
关于bash - 使用 sed 替换花括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38513319/