我正在尝试构建一个使用“sed”执行以下操作的脚本:
如果它能够使用另一个具有“要搜索的字符串”的文件并使用“要替换的字符串”,就像字典一样,那将是很棒的:
{TEST} = 50
{FIRST_NAME} =亚历克斯
答案 0 :(得分:0)
您可以在文件中放入一堆sed s///
命令:
$ cat change.sed
s/{TEST}/50/g
s/{FIRST_NAME}/Alex/g
如果您有以下配置输入: $ cat test.js.config 警报({TEST}) 警报({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)