Существует ли инструмент, который позволит мне передать вывод по каналу исполняемого файла через него и играть звук или, еще лучше, выделить строку, где выбранная фраза происходит?
Я хочу смочь сделать что-то вроде этого:
./myProgWithLotsOfOutput | ./myMysteryTool blahUsefulWord
и имейте весь вывод, появляются и прокручивают, но любое время "blahUsefulWord" появляется, консольные звуковые сигналы и выделения та строка.
Это - своего рода соединение мишени и grep. С другой стороны, у Вас есть навыки Bash, чтобы сделать что-то вроде этого на скорую руку?
Для Bash> = версия 3.2:
regex='some regex pattern'
highlight=$(tput setaf 2) # green, use setab to do inverse instead of foreground
off=$(tput sgr0)
while read line
do
[[ $line =~ $regex ]] && echo -n $'\07'"$highlight"
echo "$line$off"
done
Это выделяет целую строку, а не просто соответствие.
Моя ошибка на ответе. Я попробовал это:
PATTERN="something"
export GREP_COLOR='1;37;41' # set to a sequence of xterm escape sequences for colorization.
export GREP_OPTIONS=--color=always
while read LINE
do
echo $LINE | grep $PATTERN || echo $LINE
done
Базирующийся прочь этого Вопросы и ответы, я создал следующую функцию:
# mylite since 'highlight' is already a program
function mylite () {
pattern=$1; shift; file=$1
grep -E --color "$pattern|$" $file
}
Примеры использования:
mylite pattern file.txt
cat file.txt | mylite pattern
Никакая подача звукового сигнала в этом примере, но я уверен, что это может быть добавлено путем изменения grep
как показано другими ответами на этой странице.