web-dev-qa-db-ja.com

尾-Fビープ音を鳴らす方法はありますか?

新しいデータが入ったとき(ファイルに新しい行が追加されたとき)にtail -Fまたはlessのビープ音(端末のベルを鳴らす)を行う方法はありますか?または、LinuxまたはMacでこれを行う他のUNIXユーティリティがあります。

23
Ali

アイデアの移行は、tailの出力をsedにパイプして、改行をbell/newlineで置き換えることです。

しかし、おそらくx-window内でtailを使用すると、より簡単な解決策があります。そこで、ウィンドウのコンテンツが変化したときに、アクションを実行できます(フリッカー、ベルなど)。

13
Nils

GNU screenを使用する場合、ウィンドウを尾で「監視」するように設定できます。ステータスバーまたはtermcapで定義されたベルによって警告されます、そのウィンドウに新しい出力があること。

http://www.gnu.org/software/screen/manual/html%5Fnode/Monitor.html#Monitor


edit:mac os xについて言及したので、これを追加する必要がありました

おもしろいことに、特に何かを探している場合は、Mac OS Xのsayコマンドを使用して、監視しているファイルを読み取ることができます。 logtailコマンドを取得するだけです。

http://www.hmug.org/pub/MacOS_X/BSD/Administration/Log/logcheck/

次のようなスクリプトで使用します。

#!/bin/bash

file=$1
offset=$(basename "$1")

# while true... let this thing run until it's killed...
while true; do
    output=$(/usr/local/bin/logtail $file .${offset}.offset)
    if [ ! -z "$output" ]; then

        # print the output and say Ding
        echo "$output" && say Ding
        # to have the file read aloud to you, uncomment the following:
        say "$output"

        fi
    # recheck every 5 seconds
    sleep 5
done
13
Tim Kennedy

multitail を使用できます。これは拡張テールであり、正規表現一致でのコマンド実行をサポートします。

例えば。次のコマンドは、サウンドを再生し、martian sourceパケットがログに記録されるたびにxmessageウィンドウを開きます。

multitail -ex "martian source" "play beep.wav; xmessage " -i /var/log/messages
10
andcoz

念のため、@ Nilsが提案したように、sedを使用して各行にbellを追加しています。

@Gillesが提供するsed

sed -e $'s/$/\a/' 

私のMacで動作します(私はTerminal\preferences\advancedで「ベル」と「ベル」を有効にしました)。

4
Ali

このページを見つけた他の人のために、私はtcshを使用していますが、これはうまくいくようです:

tail -f changingfile | sed -e 's/.*/& \a/'

Sed構文の意味を聞かないでください...

1
raymond

konsoleを試すと、任意のタブで新しいアクティビティ(または無音)に関するアラートが許可されます。

0