Есть ли инструмент, который подает звуковой сигнал и выделяет согласующие отрезки длинной линии, которые передаются по каналу через него при отображении всего

Существует ли инструмент, который позволит мне передать вывод по каналу исполняемого файла через него и играть звук или, еще лучше, выделить строку, где выбранная фраза происходит?

Я хочу смочь сделать что-то вроде этого:

./myProgWithLotsOfOutput  | ./myMysteryTool blahUsefulWord

и имейте весь вывод, появляются и прокручивают, но любое время "blahUsefulWord" появляется, консольные звуковые сигналы и выделения та строка.

Это - своего рода соединение мишени и grep. С другой стороны, у Вас есть навыки Bash, чтобы сделать что-то вроде этого на скорую руку?

2
задан 13.08.2010, 18:26

4 ответа

Для 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

Это выделяет целую строку, а не просто соответствие.

2
ответ дан 08.12.2019, 07:32

Моя ошибка на ответе. Я попробовал это:

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
0
ответ дан 08.12.2019, 07:32

Что-то как logwatch может быть тем, что Вы ищете.

0
ответ дан 08.12.2019, 07:32

Базирующийся прочь этого Вопросы и ответы, я создал следующую функцию:

# 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 как показано другими ответами на этой странице.

1
ответ дан 08.12.2019, 07:32

Теги

Похожие вопросы