আমি একটি ফাইল টেল করতে চাই তবে কেবলমাত্র আউটপুট লাইনগুলিতে একটি নির্দিষ্ট স্ট্রিং রয়েছে। এটা কি সম্ভব?
আমি একটি ফাইল টেল করতে চাই তবে কেবলমাত্র আউটপুট লাইনগুলিতে একটি নির্দিষ্ট স্ট্রিং রয়েছে। এটা কি সম্ভব?
উত্তর:
গ্রেপ ব্যবহার করুন। এটি ঠিক সেই উদ্দেশ্যে নির্মিত।
/ Var / log / syslog এর একটি লেজ থেকে লাইনগুলি সন্ধান করতে যেগুলিতে "ক্রোন" রয়েছে, কেবল চালনা করুন:
tail -f /var/log/syslog | grep cron
এবং যেহেতু এটি স্টিডিনের উপরে যে কোনও কিছু গ্রহণ করে, আপনি উপরের মতো একইভাবে পাইপ দিয়ে (অন্য চিহ্নটি ব্যবহার করে) অন্য কোনও কমান্ডের আউটপুটটিতেও এটি ব্যবহার করতে পারেন।
এখানে আরও কয়েকটি ধারণা দেওয়া হয়েছে, যা সাধারণ না হলেও কিছু আকর্ষণীয় অতিরিক্ত নমনীয়তা সরবরাহ করতে পারে:
প্রথমত, আপনি গ্রেপের পরিবর্তে অ্যাজকে ফিল্টার করতে পারেন:
tail -f /var/log/messages | awk '/myfilterword/'
যে উদাহরণ ব্যবহার করে ঠিক একই কাজ করে grep
। আপনি এটিকে অবাস্তব শক্তি ব্যবহার করে প্রসারিত করতে পারেন, উদাহরণস্বরূপ:
tail -f /var/log/messages | \
awk '/myfilterword/ { for (i=6; i<=NF; i++) printf("%s ", $i); printf("\n")}'
যা আউটপুটটির শেষ ক্ষেত্রের মাধ্যমে 6th ষ্ঠ মুদ্রণ করবে (ক্ষেত্রগুলি সাদা স্থান আলাদা করা আছে)
আরেকটি অনুরূপ ধারণাটি পার্ল ওয়ান-লাইনার ব্যবহার করা:
tail -f /var/log/messages | perl -ne "/myfilterword/ and print"
যে ঠিক মত কাজ করে grep
। হতে পারে আপনি একটি লাইন নম্বর কাউন্টার এবং কেবল the ষ্ঠ ক্ষেত্র চান? এটি সম্পর্কে:
tail -f /var/log/messages | \
perl -lane "/myfilterword/ and printf \"%6d %s\n\",++\$a,\$F[6]"
স্পষ্টতই এই ধরণের জিনিসগুলি অন্যান্য সরঞ্জামগুলির সাথেও করা যেতে পারে, তবে আমি চিত্রিত করতে চেয়েছিলাম যে এখানে আরও বেশ কয়েকটি সাধারণ উদ্দেশ্য ভাষা ব্যবহারের কিছু মজাদার উপায় রয়েছে here
আরেকটি কৌশল লক্ষণীয়, যদি আপনার শিরোনাম সহ CSV ফাইল থাকে যা আপনি বাদ দিতে চান, যেমন:
% cat data.txt
fruit dessert calories
Apple Pie 770
Banana Pudding 625
Cherry Cobbler 990
% tail -n +2 data.txt
Apple Pie 770
Banana Pudding 625
Cherry Cobbler 990
এটা কোন ব্যাপার না কতদিন ইনপুট tail
হয়, +n -2
প্রথম লাইন বাদ হবে।
grep
এটি যখন ইন্টার-ইন্টারেক্টিভভাবে ব্যবহার করা হবে না যেমন যেমন এটি দীর্ঘতর পাইপলাইনের অংশ তখন।--line-buffered
পাইপলাইন থেকে গ্রেপ অপসারণ করা কোনও বিকল্প নয়, তখন জিএনইউ গ্রেপ ২.২.১ এর চারপাশে কাজ করার বিকল্প প্রস্তাব করে । (যখন আমি বলি গ্রেপ বাফার করবে মানে আমি বাফার 4k এর মতো কিছু না পৌঁছানো পর্যন্ত আউটপুট দেখতে পাবে না।)