যদিও আমি মনে করি না যে পাইয়ারের এই উদ্বেগ ছিল, তবে আমার এমন একটি সমাধানের দরকার ছিল যা কোনও ফাইলের লাইভ "লেজ" থেকে আউটপুটটি বিলম্বিত না করে, যেহেতু আমি এক সাথে কয়েকটি সতর্কতা লগগুলি একই সাথে পর্যবেক্ষণ করতে চেয়েছিলাম, প্রতিটি লাইনটিকে তার নিজের লগের নামের সাথে উপস্থাপন করছিলাম ।
দুর্ভাগ্যক্রমে, সেড, কাট ইত্যাদি খুব বেশি বাফারিং চালু করেছে এবং সর্বাধিক বর্তমানের লাইনগুলি দেখতে আমাকে বাধা দিয়েছে। স্টিভেন পেনির -s
বিকল্পটি ব্যবহার করার পরামর্শটি nl
আকর্ষণীয় ছিল এবং পরীক্ষার মাধ্যমে প্রমাণিত হয়েছিল যে এটি আমাকে উদ্বিগ্ন অযাচিত বাফারিংয়ের পরিচয় দেয়নি।
nl
অযাচিত লাইন নম্বরগুলি ছাঁটাই করার আকাঙ্ক্ষার সাথে সম্পর্কিত যদিও ব্যবহার করার ক্ষেত্রে বেশ কয়েকটি সমস্যা ছিল (আপনি যদি এটির নান্দনিকতার বিষয়ে যত্ন নাও করেন তবে অতিরিক্ত কলামগুলি ব্যবহার করা অনাকাঙ্ক্ষিত হতে পারে) এমন ঘটনাও ঘটতে পারে। প্রথমে সংখ্যাগুলি কাটাতে "কাটা" ব্যবহার করে বাফারিং সমস্যাটি পুনরায় পরিচয় করানো হয়, সুতরাং এটি সমাধানটি নষ্ট করে দেয়। দ্বিতীয়ত, "-w1" ব্যবহার করে কোনও লাভ হয় না, যেহেতু এটি একক কলামে লাইন নম্বর সীমাবদ্ধ করে না - আরও অঙ্কের প্রয়োজন হওয়ায় এটি আরও প্রশস্ত হয়।
আপনি অন্য কোথাও এটি ক্যাপচার করতে চান তা সুন্দর নয়, তবে যেহেতু আমার যা করার দরকার ছিল না ঠিক তাই (সমস্ত কিছু আগে থেকেই ফাইল লগ করার জন্য লেখা ছিল, আমি কেবল রিয়েল টাইমে একবারে বেশ কয়েকটি দেখতে চেয়েছিলাম), সেরা লাইন নম্বরগুলি হারাতে এবং কেবল আমার উপসর্গ করার উপায়টি ছিল -s
ক্যারেজ রিটার্ন (সিআর বা ^ এম বা সিটিআরএল-এম) দিয়ে স্ট্রিং শুরু করা । উদাহরণস্বরূপ:
#!/bin/ksh
# Monitor the widget, framas, and dweezil
# log files until the operator hits <enter>
# to end monitoring.
PGRP=$$
for LOGFILE in widget framas dweezil
do
(
tail -f $LOGFILE 2>&1 |
nl -s"^M${LOGFILE}> "
) &
sleep 1
done
read KILLEM
kill -- -${PGRP}
sed
এই জাতীয় হালকা ওজনের জন্য পছন্দ করি । যদি "উপসর্গ" পরিচিত হয় তবে "উপসর্গ" থেকে নয় এমন একটি চরিত্র চয়ন করা খুব সহজ।