新しいデータが入ったとき(ファイルに新しい行が追加されたとき)にtail -F
またはless
のビープ音(端末のベルを鳴らす)を行う方法はありますか?または、LinuxまたはMacでこれを行う他のUNIXユーティリティがあります。
アイデアの移行は、tail
の出力をsed
にパイプして、改行をbell/newlineで置き換えることです。
しかし、おそらくx-window内でtail
を使用すると、より簡単な解決策があります。そこで、ウィンドウのコンテンツが変化したときに、アクションを実行できます(フリッカー、ベルなど)。
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
multitail を使用できます。これは拡張テールであり、正規表現一致でのコマンド実行をサポートします。
例えば。次のコマンドは、サウンドを再生し、martian sourceパケットがログに記録されるたびにxmessageウィンドウを開きます。
multitail -ex "martian source" "play beep.wav; xmessage " -i /var/log/messages
念のため、@ Nilsが提案したように、sed
を使用して各行にbell
を追加しています。
@Gillesが提供するsed
行
sed -e $'s/$/\a/'
私のMacで動作します(私はTerminal\preferences\advancedで「ベル」と「ベル」を有効にしました)。
このページを見つけた他の人のために、私はtcshを使用していますが、これはうまくいくようです:
tail -f changingfile | sed -e 's/.*/& \a/'
Sed構文の意味を聞かないでください...
konsole
を試すと、任意のタブで新しいアクティビティ(または無音)に関するアラートが許可されます。