У меня есть этот скрипт, где я прошу 4 шаблона, а затем используйте их в команде grep
. То есть, я хочу посмотреть, соответствует ли строка любому шаблону.Передача пустых строк команде grep
echo -n "Enter pattern1"
read pat1
echo -n "Enter pattern2"
read pat2
echo -n "Enter pattern3"
read pat3
echo -n "Enter pattern4"
read pat4
cat somefile.txt | grep $pat1 | grep $pat2 | grep $pat3 | grep $pat4
Проблема я бегу в том, что если пользователь не предоставляет один из шаблонов (которые я хочу, чтобы) команда Grep не работает.
Итак, есть ли способ, чтобы grep игнорировал один из шаблонов, если он возвращается пустым?
@fedorqu - Я извиняюсь за вопрос дубликата вопрос. Если к настоящему времени это не больно очевидно, я очень к этому отношусь. – berserker
@berserker вы хотите фильтровать с помощью AND или OR? трафик grep на другой grep будет фильтровать первые результаты. Обратите внимание, что если вы скажете: 'pat = $ {pat: -" "}' заменит пустой контент на '' '', а затем 'grep '$ pat' 'он работает, так как' grep' 'file' просто возвращает полный контент , – fedorqui
@fedorqu - Я хочу фильтровать по OR. В основном, я занимаюсь поиском syslog и принимаю ввод для src и dst ip, а также src и dst-порт. Я хочу, чтобы мой поиск работал либо с четырьмя входами, либо с одним из них. – berserker