2016-06-21 76 views
0

试图编写test1.ksh,其中包含用于搜索“%s_sitename%”字符串的命令,并将其替换为“%s_sitename%”,并将其替换为文件test.sql中的当前日期:使用“sed”进行更改和替换的shell脚本

s1='%s_sitename%' s2=echo date "+%Y-%b-%e" s3=$s1$s2 sed -i 's/'"$s1"'/'"$s3"'/g' test.sql exit 

回答

0
s2=echo date "+%Y-%b-%e" 

是错误的。首先你不需要回声,其次你没有在反引号里面加上命令(``)

s1='%s_sitename%' 
s2='%s_sitename%'"$(date "+%Y-%b-%e")" 
sed -i 's/'"$s1"'/'"$s2"'/g' test.sql 

应该这样做。

+0

谢谢Sajith!代码正在工作!好极了! :) :) –

+0

我使用了类似于下面的内容:s1 ='%s_sitename%' s2 ='%s_sitename%“'($ date”+%Y-%b-%e“)”但是在使用相同的第二时间文件的情况下,将2016年6月22日的值作为“%s_sitename%”,并将其更新为“截至2016年6月22日的2016年6月22日的%s_sitename%” –