উত্তর:
একটি sed একটি মাছ ধরার নৌকা সঙ্গে এটি করবেন:
sed -n -s -r '1,/REMOVE/ { s/.*(([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}).*/\1/p }' *.txt
ব্যাখ্যা:
-n
স্পষ্টভাবে ব্যবহার করা হয়, যদি না লাইন লাইন মুদ্রণ করে তোলে p
কমান্ড। -s
এক স্ট্রিমে সমস্ত ফাইল একত্রিত করার পরিবর্তে প্রতিটি ফাইল পৃথকভাবে হ্যান্ডেল করে তোলে। -r
sed sed ব্যবহার করে বর্ধিত regex সিনট্যাক্স যা কম escaping প্রয়োজন। মনে রাখবেন যে -s
এবং -r
জিএনএ এক্সটেনশান হয়। যদি আপনি জানেন না যে gnu এক্সটেনশানটির মানে কি তবে আপনি সম্ভবত gnu sed ব্যবহার করছেন। যদি আপনি একটি gnu sed ব্যবহার না করেন তবে আপনাকে অনুপস্থিত বৈশিষ্ট্যগুলির সমাধান করতে হবে।
আরো ব্যাখ্যা:
1,/REMOVE/ { commands }
লাইন ধারণকারী ইনপুট প্রথম লাইন থেকে কোঁকড়া ধনুর্বন্ধনী ভিতরে কমান্ড কার্যকর করা মানে REMOVE
। s/pattern/replacement/p
প্যাটার্ন জন্য অনুসন্ধান মানে, প্রতিস্থাপন সঙ্গে প্রতিস্থাপন এবং তারপর যে প্রতিস্থাপন প্রিন্ট। .*(([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}).*
একটি প্যাটার্ন যা বিন্দু দ্বারা বিভাজিত চারটি সংখ্যা সংখ্যার একটি শৃঙ্খল ধারণকারী সমস্ত লাইন স্বীকৃতি দেয়। এটি একটি তথাকথিত গ্রুপে চেইন captures। \1
বন্দী দলের প্রথম উল্লেখ। এর অর্থ হল বাকি লাইনটি বাতিল করা এবং শুধুমাত্র IP ঠিকানা মুদ্রণ করা। জরিমানা পড়া sed ম্যানুয়াল আরো ব্যাখ্যা জন্য। জরিমানা দেখুন sed টিউটোরিয়াল ।