【发布时间】:2015-08-31 16:52:37
【问题描述】:
我需要构建包含“/”字符的 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"};
输出应在 myreg.sh 文件中将 {ee.jar} 替换为 {ee.jar:$MY_HOME/lib/jcagent.jar}
【问题讨论】:
-
您可能需要先使用
\\\/从java 中转义斜线,以便shell 看到\/而不仅仅是/。话虽如此,您可以使用备用分隔符来 sed 完全避免此问题(即s,foo,bar,等)。 -
您可以在 sed 命令中使用诸如“#”之类的“浪费”字符而不是“/”。您必须替换所有通常会用“#”格式化命令的“/”字符
-
请在您的问题中添加示例输入和该示例输入所需的输出。
-
添加了请看,还有问题中显示为单个\的\\\
-
您将在 [sed 中斜线的另一个问题](stackoverflow.com/questions/22182050/…)中找到来自 @Jim 的浪费示例