2015-08-27 94 views
1

我有下面的sed命令与包含字符串今天的日期来替换字符串“-log -asofdate 20150901”:sed命令乱码错误的正则表达式

sed 's'/"-log -asofdate [0-9*] "'/'"-log -asofdate $newAsOfDate"'/g' /export/home/ownclp/temp/runjava.sh.bk > /export/home/ownclp/temp/runjava.sh 

但我不断收到sed命令garbles错误。 如果我删除了[0-9]*,则sed命令有效。

回答

3

*字符类后:

[0-9]* 

分隔符不应该是一个斜线。

我觉得整个CMD应该是:

sed "s~-log -asofdate [0-9]*~-log -asofdate $newAsOfDate~g" /export/home/ownclp/temp/runjava.sh.bk > /export/home/ownclp/temp/runjava.sh 
+0

我尝试过,但它没有工作。 我收到以下错误: sed:命令乱码:s/-log -asofdate [0-9]/- log -asofdate 01/08/2015/g –

+0

@ArchitSharma尝试将'sed'的分隔符更改为不是正斜杠,例如'-log -asofdate [0-9] *〜-log -asofdate $ newAsOfDate〜g',当变量被展开时,会出现多个正斜杠。 @波希米亚你应该改变你的分隔符 – gwillie

+0

@gwillie完美的工作。谢谢大家:) –