我正在使用eno(&a, &b); // pass the address of a and b
^ ^
int eno(int* j, int* k) // j and k now point to a and b respectively.
^ ^
替换包含以下内容的文本文件中的字符串:
sed
在脚本中使用以下命令:
prop="distributed-${DEPLOY_ENV}.properties, database-${DEPLOY_ENV}.properties, compute-${DEPLOY_ENV}.properties"
但是我得到以下输出;仅替换#!/usr/bin/env bash
env=dev
sed \
-e "s/\${DEPLOY_ENV}/"${env}"/" \
的第一个匹配项:
DEPLOY_ENV
如何替换所有的出现而不是第一次出现?
答案 0 :(得分:1)
sed "s/\${DEPLOY_ENV}/"${env}"/g"
为全局添加/g
。
答案 1 :(得分:1)
您只需要通过添加“ g”来使作用域成为全局范围,以便影响所有匹配项。
#!/usr/bin/env bash
set -x
env=dev
sed \
-e "s/\${DEPLOY_ENV}/"${env}"/g" \
并按以下方式运行命令(其中 text_file_with_envs.txt 代表您的原始文件, text_file_with_envs.txt.new 是您的更新文件):
$ ./sed-multi-repl.sh < ./text_file_with_envs.txt > ./text_file_with_envs.txt.new
这是猫在新文件上的输出:
$ cat text_file_with_envs.txt.new
prop="distributed-dev.properties, database-dev.properties, compute-dev.properties"
答案 2 :(得分:0)
正确的语法是:
$ env=dev
$ sed 's/${DEPLOY_ENV}/'"$env"'/g' file
prop="distributed-dev.properties, database-dev.properties, compute-dev.properties"