shell 脚本搜索并用日期替换字符串值

shell script search and replace sting value with date

脚本 abc.ksh 应替换文件 xyz.sql 的值,如下所示

在日期“+%Y-%b-%e”之前搜索字符串“%s_sitename”,每次我们执行 abc.ksh

时,日期随 sysdate 发生变化
s1='%s_sitename%[a-z][0-9]/-'
s2='%s_sitename%'"$(date "+%Y-%b-%e")"
sed -i 's/'"$s1"'/'"$s2"'/g' xyz.sql       

abc.sql 文件应该每次使用 sysdate 更新如下

"%s_sitename% as of 2016-Jun-22"

有了电流,我得到如下有线输出

s1='%s_sitename% as of [a-zA-Z0-9-]*'
s2='%s_sitename% as of '"$(date "+%Y-%b-%e")"
sed -i 's/'"$s1"'/'"$s2"'/g' xyz.sql

测试:

echo "%s_sitename% as of 2005-Apr-02" | sed 's/'"$s1"'/'"$s2"'/g'

输出:

%s_sitename% as of 2016-Jun-26

参见:The Stack Overflow Regular Expressions FAQ