我想要实现的是在一个文件夹的所有* .txt文件中替换一些占位符。
我并不经常使用shell脚本,但为了这个目的,我想使用它。我的第一次尝试是这样的:
#!/bin/sh
MYSTRING="Thesedentary"
echo $MYSTRING
perl -pi -w -e 's/{{PLACEHOLDER}}/${MYSTRING}/g;' /path_to_directory/*.txt
我知道perl -pi -w -e 's/.../.../g;' /path_to_directory/*.txt
会将第一个/.../
的内容替换为第二个/.../
,但正如您所见,我想将第二个/.../
替换为内容变量 - > MYSTRING
。我得到的只是:
Name "main::MYSTRING" used only once: possible typo at -e line 1.
但文件中的{{PLACEHOLDER}}
将被替换为任何内容 - >
由于
答案 0 :(得分:0)
找到解决方案:
#!/bin/sh
MYSTRING='Thesedentary'
eval "perl -pi -w -e 's/{{TEST}}/${MYSTRING}/g;' /path_to_directory/*.js"
使用eval
执行命令。