У меня есть программа командной строки, которую я использую, которая входит в систему на консоли. Однако, сделайте это с помощью какой-либо неисправной прошивки, она печатает определенную ошибку каждые 1 секунду.Выход команды фильтра с использованием grep
Как я могу использовать grep
для фильтрации вывода, чтобы эта конкретная строка ошибки была исключена из входа в консоль?
Точная ошибка, я хочу, чтобы избавиться от того, является:
[1] [NTC] [NET] netcam_read_html_jpeg: Potential split boundary - 1447 chars flushed, 1 re-positioned
Если я создаю sh
скрипт с ошибочной строкой в нем, например, так:
#!/bin/sh
echo "[1] [NTC] [NET] netcam_read_html_jpeg: Potential split boundary - 1447 chars flushed, 1 re-positioned"
echo "testing"
А потом запустить его, выход, как и ожидалось,
[1] [NTC] [NET] netcam_read_html_jpeg: Potential split boundary - 1447 chars flushed, 1 re-positioned
testing
Теперь, если я запускаю его с помощью grep -v
к т чень пропустить эту строку, например, так:
./script.sh | grep -v "[1] [NTC] [NET] netcam_read_html_jpeg: Potential split boundary - 1447 chars flushed, 1 re-positioned"
Выход еще:
[1] [NTC] [NET] netcam_read_html_jpeg: Potential split boundary - 1447 chars flushed, 1 re-positioned
testing
Однако если я запускаю тот же сценарий, на этот раз пытается избавиться от строки, содержащей testing
, например, так:
./script.sh | grep -v "testing"
Тогда будет, как и следовало ожидать выход:
[1] [NTC] [NET] netcam_read_html_jpeg: Potential split boundary - 1447 chars flushed, 1 re-positioned
Теперь то, что здесь не так ?? Ясно, что я использую правильную команду, так как она работает во втором примере. Это просто не работает, чтобы опустить фактическую строку, в которой я хочу!
Что мне не хватает?
Пожалуйста, прочтите https://stackoverflow.com/help/how-to-ask. Также, пожалуйста, продемонстрируйте любые попытки, которые вы сделали самостоятельно. Вы должны сделать некоторые попытки, прежде чем спрашивать. –
@EtanReisner - Обновленный вопрос –
Квадратные скобки являются метасимволами регулярного выражения. Они означают класс персонажа. Они не соответствуют нормальным символам. Вам нужно сбежать от них (с '\\') или сообщить grep использовать фиксированные шаблоны (с флагом 'fgrep' или' -F' до 'grep'). –