2011-10-02 57 views
1

我如何可以替換包含$爲\ $

如 元文件的文件替換它包含

string 1Mcl0c41$ 

替換它應該像

string 1Mcl0c41\$ 

使用SED我可以執行

$ cat dollar 
string 1Mcl0c41$ 

$ sed "s/1Mcl0c41/1Mcl0c41\\\\/g" dollar > fixed-filename 

$ cat fixed-filename 
string 1Mcl0c41\$ 

同我wan't通過使用Groovy,我想用\ $

+2

這是不是你在做什麼SED例子呢?其追加\到1Mcl0c41 –

+0

@tim的每一次出現的結束,而是sed的輸出顯示我想要的結果$貓美元 字符串1 Mcl0c41 $ $ sed的 「S/1Mcl0c41/1Mcl0c41 \\\\/g的」 美元>固定文件名 $貓的固定文件名 串1Mcl0c41 \ $ – anish

+0

是的,但它不被替換'$'做用'\ $' –

回答

3

在Groovy腳本/程序以取代所有$的發生來實現,你可以說

new File('./fixed-filename') << new File('./dollar').text.replace('$','\\$') 

或者,從命令行,儘量

groovy -e "line.replace('$','\\\\$')" -p dollars > fixed-filename