Grep с кавычкой

Я пытаюсь сканировать журнал ошибок для строк с 503 ошибками, поэтому я grepping для " 503 (пространство кавычек 503).

Это кажется простым, но это не сработает:

grep '" 503 ' access.log

Я получаю следующую ошибку:

bash: - c: строка 0: неожиданный EOF при поиске соответствия `"' bash: - c: строка 1: синтаксическая ошибка: неожиданный конец файла

4 ответов


кажется, что вы запускаете его через какую-то систему() на каком-то языке, не так ли? Попробуйте:

grep '\" 503 ' access.log

или:

grep "\" 503 " access.log

непосредственно в оболочке просто grep '" 503 ' access.log будет работать. Чтобы воспроизвести вашу проблему, я должен сделать:

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

это действительно синтаксическая ошибка. Чтобы это сработало, мне нужно:

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

ты как-то зовешь bash -c .... Может быть, косвенно. Вам нужно понять, как это называется, чтобы выяснить, какие цитаты находятся в столкновении.


для отладки таких странных эффектов используйте "set-x", чтобы показать расширения оболочки и то, что компьютер думает о вашей команде.


Я считаю, что он работает сейчас (не уверен, потому что я не получил никаких результатов, но не получил ошибку).

причина в том, что я передаю его через команду ssh, как показано ниже, и я считаю, что SSH делает некоторые трюки побега:

ssh 123.123.123.123 grep '" 503 ' access.log

изменение его на это, кажется, исправление:

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

Спасибо за время.


проблема была вызвана некоторыми ошибочными директивами в .bashrc.