bash - 使用 sed 删除算术形式

我想使用 sed 删除文件中算术形式中的 ${} 例如 abc=$(( ${var}+3 ))abc=$(( var+3 ))

我在 sed 中使用位置交换 像

sed -E 's/(\w+\W\$\(\( ) (\$\{) (\w+) (\}) (.*)/\1 \3 \5/g file.txt'

但当我使用时它只提取abc=3

echo abc=$((( ${var}+3 )) | sed -E 's/(\w+\W\$\(\( ) (\$\{) (\w+) (\}) (.*)/\1 \3 \5/' 

在终端中,只是为了检查它是否工作正常

它在 shell 脚本上什么也没做我怎么能只删除文件的 ${} 部分?

我用的是 Mac OS,也在 Ubuntu 上试过,但还是一样

最佳答案

使用sed

$ sed -E 's/\$\{([^}]*)}/\1/' input_file
abc=$(( var+3 ))

https://stackoverflow.com/questions/73987550/

相关文章:

c++ - 如何在 SSE2 中为 8 位和 16 位整数实现 vector 右移和左移?

rust - Rust 中的一个可变借用或多个不可变借用……为什么?

go - gcloud 函数部署 go 运行时错误 "undefined: unsafe.Slice

python - 在python中打印出两个列表的组合

regex - 为什么 Perl 正则表达式不匹配 "\n"和后面的字符?

c++ - 你能用折叠表达式实现 fn(x1 ^ fn(x0)) 吗?

Python - 如何删除以数字开头并包含句点的单词

c# - 在 C# 中将小驼峰命名法转换为 PascalCase?

c - 使用个性系统调用使堆栈可执行

ruby - 如何在 Ruby 中创建可调用属性