回答:
考えの移行は、tail
スルーの出力をパイプ処理しsed
、改行をベル/改行に置き換えることです。
ただしtail
、x-window内で使用する場合、より簡単な解決策があります。そこで、ウィンドウのコンテンツが変更されたときにアクションを実行できます(ちらつき、ベルなど)。
sed
アイデアは素晴らしいですが、それを機能させるのに十分な「sed」がわからない、正規表現(通常の方法)で改行をキャプチャできないようです、着信ストリームを行ごとに解釈しないでください。
sed -e $'s/$/\a/'
追加し$'\a'
ます。
sed
正規表現は、私の素朴な目には少し奇妙です。
$'...'
構文は普遍的ではないことに注意してください。たとえば、[t] cshはサポートしていません。
GNUを使用している場合screen
、ウィンドウをテールで「見る」ように設定できます。ステータスバーで、またはtermcapで定義されたベルで、そのウィンドウに新しい出力があることを警告します。
http://www.gnu.org/software/screen/manual/html%5Fnode/Monitor.html#Monitor
編集:あなたは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
screen
ショー、アラートに感謝します(私もそれを鳴らすことができると思います)一度だけ。発生するすべての新しいイベント用ではありません(利用可能なすべての新しい行用ではありません)
beep
、の代わりにコマンドを使用して、linuxで動作するように変更できますsay
。
exec
コマンドを使用して同様に行うこともできます。マンページの例では!:sed -n s/.*Error.*/\007/p
、そのウィンドウに「エラー」が表示されるたびにベルが送信されます。
記録のためだけに、@ Nilsが各行sed
にa bell
を追加するために使用していると示唆したように。
sed
@Gillesが提供するライン
sed -e $'s/$/\a/'
Macで動作します(Terminal \ preferences \ advancedで「可聴ベル」と「視覚ベル」を有効にしました)。
$'...'
エスケープシーケンスはBash専用であることです。
このページを見つける他の人のために、私はtcshを使用していますが、これはうまくいくようです:
tail -f changingfile | sed -e 's/.*/& \a/'
sed構文の意味を聞かないでください...
konsole
任意のタブで新しいアクティビティ(または無音)のアラートを許可する方法を試すことができます。
konsole
ようになりscreen
、私はすべての新しい行のためのアラートを受信する必要がある一方で、それは、一度警告します。