在某些情况下,grep的结果并不像预期的那样

时间:2017-01-17 07:16:59

标签: bash shell ssh grep

问题1:

  

filename:testfile

     

文件中的一行字符串:test my file

执行以下命令:

  

$ grep“test ./testfile

结果如下:

  

测试我的文件

我的问题是为什么grep with pattern “test 匹配文件中的内容 测试我的文件 ?< / p>

问题2:

  

ssh $ host“grep”test1 test2“/ home / bob -R”

     

grep:test2:没有这样的文件或目录

我的问题是为什么grep将“test1 test2”中的第二部分视为文件名?

P.S。

当我使用反斜杠来逃避问题2中的引用时,命令的输出似乎是正确的。

  

ssh $ host“grep \”test1 test2 \“/ home / bob -R”

1 个答案:

答案 0 :(得分:2)

  

ssh $ host“grep”test1 test2“/ home / bob -R”

     

grep:test2:没有这样的文件或目录

您收到此错误,因为shell与"结束的地方相混淆。由于grep假定test1为模式而test2为文件。然后它试图找到一个不存在的文件test2。你必须使用:

ssh $host 'grep "test1 test2" /home/bob -R'