grep远程机器具有]字符

时间:2016-10-11 08:51:18

标签: bash

我正在尝试搜索远程服务器中的文件。
我正在寻找的模式是] LEADER,例如[T2] LEADER匹配。
我的命令是:ssh myname@ip grep -r "] LEADER" logfile

但是,报告错误grep : LEADER: no such file。我可以知道如何解决这个问题吗?

4 个答案:

答案 0 :(得分:3)

shell取消双引号,因此远程机器上的“grep”会看到三个参数 - “]”,“LEADER”和“logfile”

更改为:    ssh myname @ ip grep -r“\”] LEADER \“”logfile

答案 1 :(得分:2)

在命令周围使用单引号以防止命令被本地shell预先解释:

ssh myname@ip 'grep -r "] LEADER" logfile'

答案 2 :(得分:1)

您可以尝试:

ssh myname@ip 'grep -r "] LEADER" logfile'

它将逃离空白。

答案 3 :(得分:0)

SSH将其参数捆绑在一起(严重)以创建shell命令行。所以你要引用这个命令:

ssh user@host 'grep -r "\] LEADER" logfile'

如果遇到问题,可以使用ssh -v来显示它传递给远程shell的内容。