উত্তর:
একটি ধারণা স্থানান্তর হ'ল আউটপুট tail
মাধ্যমে পাইপ দেওয়া sed
এবং বেল / নিউলাইন দিয়ে নতুন লাইনটি প্রতিস্থাপন করা।
আপনি যদি tail
একটি এক্স-উইন্ডোর মধ্যে ব্যবহার করেন তবে সম্ভবত একটি সহজ সমাধান রয়েছে । উইন্ডোর সামগ্রী পরিবর্তিত হলে (ফ্লিকার, বেল, যাই হোক না কেন) আপনি সেখানে একটি ক্রিয়া সম্পাদন করতে পারেন।
sed
আইডিয়া উজ্জ্বল তবে এটিকে কাজ করার জন্য আমি যথেষ্ট ' সেড ' জানি না, দেখে মনে হচ্ছে যে আমি রেজিস্টেপ্টে নিয়মিতভাবে নিউলাইনগুলি ক্যাপচার করতে পারি না (যা আমি অভ্যস্ত), আমার ধারণা আমার সেড বলতে হবে আগত স্ট্রিম লাইনের দ্বারা রেখার দ্বারা ব্যাখ্যা করবেন না।
sed -e $'s/$/\a/'
একটি $'\a'
(ksh / bash / zsh সিনট্যাক্সে বেল চরিত্র) যুক্ত করে।
sed
রেজেক্সট আমার নিষ্পাপ চোখের কাছে কিছুটা বিশ্রী।
$'...'
বাক্য গঠনটি সর্বজনীন নয়। উদাহরণস্বরূপ, [t] csh এটি সমর্থন করে না।
আপনি যদি জিএনইউ ব্যবহার করেন 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
শো এবং সতর্কতা (আমি অনুমান করি যে আমি এটিরও ঘণ্টা বাজতে পারি) কেবলমাত্র একবার। ঘটে যাওয়া প্রতিটি নতুন ইভেন্টের জন্য নয় (উপলব্ধ প্রতিটি নতুন লাইনের জন্য নয়)
beep
পরিবর্তে কমান্ডটি ব্যবহার করে লিনাক্সের জন্য এটি পরিবর্তন করতে পারেন say
।
exec
। ম্যানপেজের উদাহরণটি !:sed -n s/.*Error.*/\007/p
হ'ল যে উইন্ডোটিতে প্রতিবার "ত্রুটি" প্রদর্শিত হবে একটি ঘণ্টা প্রেরণ করবে।
আপনি মাল্টিটেল ব্যবহার করতে পারেন । এটি একটি বর্ধিত লেজ যা নিয়মিত প্রকাশের ম্যাচে কমান্ড কার্যকর করতে সহায়তা করে।
উদাহরণস্বরূপ নীচের কমান্ডটি একটি শব্দ বাজায় এবং প্রতিবার কোনও মার্টিন উত্স প্যাকেট লগ করলে একটি এক্সমিসেজ উইন্ডো খুলবে ।
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/'
আমাকে সিড সিনট্যাক্স মানে কি জিজ্ঞাসা করবেন না ...
আপনি চেষ্টা করতে পারেন konsole
যা কোনও প্রদত্ত ট্যাবে নতুন ক্রিয়াকলাপ (বা নীরবতা) সম্পর্কে সতর্কতা দেয়।
konsole
মত screen
হবে, যখন আমার প্রতিটি নতুন লাইনের জন্য সতর্কতা গ্রহণ করা প্রয়োজন।