bash - 使用 sed 替换花括号

标签 bash sed

我正在解析一些 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/

相关文章:

bash - 如何检查 Bash >=5.2 中是否存在关联数组?

node.js - nodemon 不工作 : -bash: nodemon: command not found

bash - 将输出保存到变量中

awk - 如果模式存在于另一列中,则从该列中移除模式

sed - sed 给出的前面的正则表达式错误无效

linux - 如何在 bash 脚本中匹配文件扩展名而不考虑大小写

linux - 如何使用 telnet 获取外部连接的 IP,或者可能是 memcached 允许的 ip 的配置错误

python - 合并从 contigs.fa 生成的两行

linux - 在 Linux 中使用 sed 替换字符串

bash - 将 sed 与包含点的变量一起使用