是否有一个工具可以发出蜂鸣声并突出显示通过它的匹配行,同时显示所有内容

是否有一个工具可以发出蜂鸣声并突出显示通过它的匹配行,同时显示所有内容

是否有一个工具可以让我通过它传输可执行文件的输出并播放声音,或者更好的是,突出显示所选短语出现的行?

我希望能够做这样的事情:

./myProgWithLotsOfOutput  | ./myMysteryTool blahUsefulWord

并让所有输出出现和滚动,但只要出现“blahUsefulWord”,控制台就会发出蜂鸣声并突出显示该行。

这是一种混合球座grep或者,您是否拥有 BASH 技能来完成这样的事情?

答案1

对于 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

基于此问答,我创建了以下函数:

# 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如本页上的其他答案所示。

答案3

我的答案有误。我尝试过以下方法:

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

答案4

就像是日志监视可能就是您正在寻找的。

相关内容