2014-02-25 62 views
0

我在尋找以下要求。如何在unix中用雙引號替換單詞

輸入文件將具有字符串

CREATE INDEX "SCOTT"."IX_EMP" ON "SCOTT"."EMP" ("EMP_ID") 

我想看到輸出如下

CREATE INDEX "SCOTT"."IX_EMP" ON "SCOTT"."T_EMP" ("EMP_ID") 

所以,我寫的聲明類似以下

$file_name.sql=sed -e "s/"ON SCOTT"."/"ON SCOTT"."T_/ig" $file_name.sql 

不幸的是,在我的輸出文件中,我想念斯科特和輸出文件包含以下

CREATE INDEX IX_EMP ON T_EMP 

請問您能否幫助我獲得所需的輸出值?

回答

2

你可以試試這個sed

sed 's/ON "SCOTT"."EMP/ON "SCOTT"."T_EMP/g' 

這裏的竅門是,單引號轉義雙引號(有效地把他們變成普通字符),這樣你就可以在圖案中使用它們。

0

以下sed命令應該進行轉換。

sed -e 's/ON "SCOTT"."/ON "SCOTT"."T_/' 

這是假設你要替換 「SCOTT」。 「與ON 」SCOTT的所有實例「。」 T_

0
sed -i ".bak" -e 's/"EMP"/"T_EMP"/' ${file_name.sql} 

tehre只有1 「EMP」 改變(在你的樣品)