2015-08-28 69 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' 

感谢