Grep с кавычкой - PullRequest
       4

Grep с кавычкой

10 голосов
/ 04 августа 2011

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

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

grep '" 503 ' access.log

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

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

Ответы [ 4 ]

13 голосов
/ 04 августа 2011

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

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 .... Возможно косвенно. Вам нужно выяснить, как это называется, чтобы выяснить, какие цитаты находятся в столкновении.

1 голос
/ 04 августа 2011

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

0 голосов
/ 27 апреля 2012

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

0 голосов
/ 04 августа 2011

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

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

ssh 123.123.123.123 grep '" 503 ' access.log

Модификация этого к этому, кажется, исправляет:

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...