您可以将一堆 seds///
命令放在一个文件中:
$ cat change.sed
s/{TEST}/50/g
s/{FIRST_NAME}/Alex/g
如果您有以下配置输入: $ cat test.js.config alert({TEST}) alert({FIRST_NAME})
结果将是:
$ sed -f change.sed test.js.config > test.js
$ cat test.js
alert(50)
alert(Alex)
语法不是很好,但也不可怕:)
OTOH,如果您真的想在替换文件中使用括号语法...
$ cat test.js.config
alert({TEST})
alert({FIRST_NAME})
...以及替换文件中的键值对...
$ cat change.txt
TEST=50
FIRST_NAME=Alex
...您可以编写一个 sed 命令来更改 sed 替换中的键值对...
$ sed 's#\(.*\)=\(.*\)#s/{\1}/\2/g#' change.txt
s/{TEST}/50/g
s/{FIRST_NAME}/Alex/g
...并在实际替换中使用此命令:
$ sed "$(sed 's#\(.*\)=\(.*\)#s/{\1}/\2/g#' change.txt)" test.js.config > test.js
$ cat test.js
alert(50)
alert(Alex)