2015-08-27 123 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完美的工作。謝謝大家:) –