我有一个属性文件如下:
build.number=153013
db.create.tablespace=0
db.create.user=0
db.create.schema=0
upgrade.install=1
new.install=0
configure.jboss=0
configure.jbosseap=false
configure.weblogic=1
configure.websphere=0
我需要将这些变量导入到 shell 脚本中。如你所知, '。'不是在 Linux 中用作变量的有效字符。我将如何使用 sed 替换所有出现的“。”在 '=' 和 '_' 之前。我已经替换了所有出现的“。”但有些属性的值包含“.”。我不想修改。
感谢任何帮助!
谢谢!
最佳答案
你可以使用
sed -e ':b; s/^\([^=]*\)*\./\1_/; tb;'
只要匹配成功,它就会将 stringWithoutEquals.
替换为 stringWithoutEquals_
。实际上,这会将 =
之前的所有 .
替换为 _
.
关于regex - 使用 sed 在 '.' 之前用 '_' 替换所有出现的 '=',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26877805/