2015-08-28 76 views
0

我需要構造包含「/」字符的SED命令。 戰略經濟對話沒有consedering此命令爲有效:SED:需要在字符串中使用「/」來使用sed追加

加入「約翰/街」

String cmdtest[] = {"sed","-3 a" + "\\","> john\\/street","/scratch/tmp.txt"}; 

也是我需要知道我怎麼能去更換帶有「/」包括一個字符串。

這是我需要執行

cmdtest[] = {"sed","-i","s/ee.jar:/ee.jar:$MY_HOME\\\/lib\\\/jcagent.jar","/scratch/myreg.sh"}; 

Ouptput應更換{} ee.jar與{ee.jar:$ MY_HOME/lib目錄/ jcagent.jar}文件myreg.sh

+1

您可能需要使用'\\\ /'先逃脫從Java斜槓使shell看到'\ /'而不是'/'在那裏。這就是說,你可以使用備用分隔符sed來完全避免這個問題(即's,foo,bar,'等)。 –

+3

您可以在sed命令中使用'#'而不是'/''廢棄'字符。你必須替換通常用'#'格式化命令的所有'/'字符。 –

+0

請爲樣本輸入添加樣本輸入和所需的輸出到你的問題。 – Cyrus

回答

0

轉義'/'字符可以通過使用'/'來完成。

例如:

假設的1.txt包含「123」

$ sed -e 's/1/x/g' 1.txt 
// returns 'x23' 

$ sed -e 's/1/\\/g' 1.txt 
// returns '/23' 
1

可以使用任何其他字符作爲分隔符,而不是/ SED中,然後就可以把/字符串中沒有任何逃避,例如這是有效的sed命令: sed -e 's#something/#something#' 將與「東西」

0

答取代「的東西/」是:

使用\ \每一個/像由chenchuk給出一個正確的答案的字符串:

$ sed -e 's/1/x/g' 1.txt 
// returns 'x23' 

$ sed -e 's/1/\\/g' 1.txt 
// returns '/23' 

感謝