जवाबों:
एक विचार माइग्रेशन के tail
माध्यम से आउटपुट को पाइप करने sed
और घंटी / न्यूलाइन के साथ नई लाइन को बदलने के लिए होना चाहिए ।
लेकिन अगर आप tail
एक x- विंडो के भीतर उपयोग करते हैं तो एक आसान समाधान है । जब खिड़की की सामग्री बदल जाती है, तो कोई कार्रवाई निष्पादित कर सकता है (झिलमिलाहट, घंटी, जो भी हो)।
sed
आइडिया शानदार है, लेकिन मैं इसे काम करने के लिए पर्याप्त ' सेड ' नहीं जानता, ऐसा लग रहा है कि मैं सामान्य तरीके से rexxpt में न्यूलाइन को कैप्चर कर सकता हूं (जिसका मैं उपयोग कर रहा हूं), मुझे लगता है कि मुझे सेड बताने की जरूरत है आने वाली धारा को रेखा द्वारा व्याख्या न करें।
sed -e $'s/$/\a/'
जोड़ता है $'\a'
।
sed
regexpt मेरी भोली आँखों के लिए थोड़ा अजीब है।
$'...'
वाक्यविन्यास सार्वभौमिक नहीं है। उदाहरण के लिए, [t] csh इसका समर्थन नहीं करता है।
यदि आप GNU का उपयोग करते हैं screen
, तो आप इसे पूंछ के साथ विंडो को "देखने" के लिए सेट कर सकते हैं, और यह आपको अपने स्टेटस बार में, या आपके टर्मकैप के परिभाषित बेल द्वारा सूचित करेगा, कि उस विंडो में नया आउटपुट है।
http://www.gnu.org/software/screen/manual/html%5Fnode/Monitor.html#Monitor
संपादित करें: जब आप मैक ओएस एक्स का उल्लेख करते हैं, तो बस इसे जोड़ना था
सिर्फ मनोरंजन के लिए, यदि आप विशेष रूप से कुछ खोज रहे थे, तो 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
शो और अलर्ट (मुझे लगता है कि मैं इसे घंटी भी बजा सकता हूं) केवल ONCE। हर होने वाली नई घटना के लिए नहीं (उपलब्ध होने वाली हर नई पंक्ति के लिए नहीं)
beep
इसके बजाय कमांड का उपयोग करके लिनक्स के लिए काम कर सकते हैं say
।
exec
इसे करने के लिए स्क्रीन कमांड का भी उपयोग कर सकते हैं । मैनपेज में उदाहरण वह है !:sed -n s/.*Error.*/\007/p
जो हर बार घंटी भेजेगा "त्रुटि" उस विंडो में प्रदर्शित होता है।
आप मल्टीटैल का उपयोग कर सकते हैं । यह एक बढ़ी हुई पूंछ है जो नियमित अभिव्यक्ति मैच पर कमांड निष्पादन का समर्थन करती है।
उदाहरण के लिए, निम्न कमांड एक साउंड बजाता है और हर बार एक मार्टियन सोर्स पैकेट लॉग होने पर xmessage विंडो खोलता है।
multitail -ex "martian source" "play beep.wav; xmessage " -i /var/log/messages
सिर्फ रिकॉर्ड के लिए, जैसा कि @ निल्स ने सुझाव दिया है कि मैं प्रत्येक पंक्ति में sed
एक जोड़ने के लिए उपयोग कर रहा हूं bell
।
sed
@Gilles द्वारा प्रदान की लाइन
sed -e $'s/$/\a/'
मेरे मैक पर काम करता है (मैं अपने टर्मिनल \ वरीयताओं \ उन्नत में "श्रव्य घंटी" और "दृश्य घंटी" सक्षम)।
$'...'
बच अनुक्रम एक बैश-केवल एक चीज है।
किसी और को जो इस पृष्ठ को पाता है, मैं tcsh का उपयोग कर रहा हूं और यह काम करने लगता है:
tail -f changingfile | sed -e 's/.*/& \a/'
मुझसे मत पूछिए कि sed वाक्यविन्यास का अर्थ क्या है ...
आप konsole
किसी भी टैब में नई गतिविधि (या मौन) पर सतर्क रहने की कोशिश कर सकते हैं ।
konsole
तरह होगा screen
, जबकि मुझे हर नई लाइन के लिए अलर्ट प्राप्त करने की आवश्यकता है।