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"
Спасибо за время.