Grep带引号

时间:2011-08-04 18:30:14

标签: bash grep

我正在尝试扫描错误日志中有503错误的行,所以我正在寻找" 503(引用空间503)。

这看似简单,但不起作用:

grep '" 503 ' access.log

我收到以下错误:

  

bash:-c:第0行:在寻找匹配的“”时出现意外的EOF   bash:-c:第1行:语法错误:意外的文件结尾

4 个答案:

答案 0 :(得分:12)

好像你是用某种语言通过某种系统()运行它,不是吗?尝试:

grep '\" 503 ' access.log

或:

grep "\" 503 " access.log

直接在shell中只有grep '" 503 ' access.log才有效。为了重现你的问题,我必须这样做:

bash -c 'grep '\" 503 ' access.log'

这确实是语法错误。要做到这一点,我需要:

bash -c 'grep "\" 503 " access.log'

你以某种方式打电话给bash -c ...。也许间接地。你需要弄清楚如何调用它来找出碰撞中的引号。

答案 1 :(得分:1)

要调试这样的奇怪效果,请使用“set -x”来显示shell扩展,以及计算机对您命令的看法。

答案 2 :(得分:0)

我相信我现在有效(不确定因为我没有结果,但没有收到错误)。

原因是因为我通过ssh命令传递它,如下所示,我相信SSH正在做一些逃避诡计:

ssh 123.123.123.123 grep '" 503 ' access.log

修改它似乎是修复:

ssh 123.123.123.123 "grep '\" 503 ' access.log"

感谢大家的时间。

答案 3 :(得分:0)

问题是由.bashrc中的一些错误指令引起的。