Я пытаюсь определить функцию bash, highlight
, которую я могу использовать, чтобы выделить условия поиска на выходе предыдущей команды. Когда я делаю это с терминала, он отлично работает следующим образом:Вывод трубы на функцию egrep
# highlight all occurrences of bar in file foo
cat foo | egrep '(bar|$)'
Да, catting упрощенный пример, но он показывает, как я могу сделать это из командной строки. Я хотел бы использовать это в общем как: cat foo | hightlight bar
Из того, что я прочитал, я не могу просто результаты трубных к egrep
, как я надеялся, так что я наивно попытался определением моей функции Баша как:
highlight() {
while read line; do
pat="'("$1"|$)'"
echo \"$line\" | egrep $pat
done
}
Однако это не работает. Пожалуйста, порекомендуйте.
Обратите внимание, что это будет * исключение * любая линия, * не * содержать шаблон. Это то, что вы хотите? –