解决SEE的评论如下Java exec grep | Linux的失败
好吧,这是一个棘手:
我从Java调用这个命令Process.exec()
:
grep -ne 'xxx\|yyy' file
它只返回xxx
?
编辑︰我逃脱\
与\\
在java中。
但是,当我在同一台机器上从命令行调用完全相同的命令时,它会按预期返回xxx
和yyy
!?
我已经尝试了一切,逃逸多和少用-E
,改变'
到"
(事实上,奇怪的是,当您从Java运行要么不工作)?
有人跑到完全相同的奇怪问题?
你可以试试这个命令:'grep -ne'xxx \\ | yyy'file'或者'grep -n -e'xxx'-e'yyy'file'? – anubhava 2013-03-20 19:50:35
当然,我在\ java代码中\ \另外\ \这一切都无法工作。 – user951335 2013-03-20 19:59:10
如果'|'必须在命令行上转义,则可能必须在Java字符串中使用3或4个'\'字符! – jahroy 2013-03-20 20:06:33