Я пишу сценарий оболочки, чтобы сделать «хвост» в растущем файле журнала. Этот скрипт принимает параметры для поиска и пошагово выводит на них результат.Строка строк grep динамически
Например, если сценарий вызывается следующим образом:
logs.sh string1 string2
он должен перевести:
tail -f logs.txt | grep string1 | grep string2
Я строю список Grep строк, как это:
full_grep_string=""
for grep_string in $*
do
full_grep_string="$full_grep_string | grep $grep_string"
done
Строка построена правильно, но когда я пытаюсь, наконец, пометить ее командой хвоста, вот так ...
tail -f $LOG_FILE_PATH $full_grep_string
... grep не применяется, и я получаю нефильтрованные журналы.
Я что-то упустил? Или есть более простой способ сделать это?
Просто небольшое уточнение: Есть идея, что ваш сценарий должен выводить строки из файла журнала, который содержит ОБА string1 и string2, или было ваше намерение найти строки, содержащие любую строку? –
Кроме того, какую оболочку вы используете? Баш? –
для меня на debian lenny Мне приходится сталкиваться с проблемой, что два комбинированных grep не работают с хвостом -f, но только с хвостом – tuergeist