sedএবং awkসুপারসেটস grep, এমন কিছু জিনিস রয়েছে যা এক বা অন্যটির সাথে করা সহজ।
grep fooলেখা যেতে পারে sed '/foo/!d'বা awk /foo/, তবে বিবেচনা করুন:
grep -i foosed '/[fF][oO][oO]/!d'আপনি যদি GNU এর মতো অ-মানক এক্সটেনশানগুলি বিবেচনা না করতে চান তবে তা হতে হবে sed '/foo/I!d'। অথবা সঙ্গে awk: awk 'tolower($0) ~ /foo/'বা আবার একটি গনুহ এক্সটেনশান ব্যবহার করে: awk -v IGNORECASE=1 /foo/।
অন্যান্য সরঞ্জামগুলির সাথে বিভিন্ন সরঞ্জামগুলিতে জিনিসগুলি ভাল এবং জটিল:
, grep
grepএকটি সাধারণ সরঞ্জাম তবে অপারেশনের খুব বিশেষ পদ্ধতি রয়েছে যা এর সাথে পুনরুত্পাদন করা শক্ত awkবা sed:
grep -i সংবেদনশীল মিলের ক্ষেত্রে (উপরে দেখুন)
grep -Fe "$string"স্থির স্ট্রিং অনুসন্ধানের জন্য (এর export string; awk 'index($0, ENVIRON["string"])'সাথে awkকোনও প্রত্যক্ষ সমতুল্য নয় sed)।
grep -rপুনরাবৃত্ত অনুসন্ধানের জন্য ( মানহীন )
- ( মানহীন )
grep -P/ pcregrepপার্ল-মতো রিজেक्सপ্সের জন্য (কিছু sedবাস্তবায়নে পার্ল-জাতীয় রিজেক্সপ সমর্থন রয়েছে যদিও সর্বাধিক বড় নয়)
- (মানহীন)
grep -oমিলিত অংশটি ফেরত দিতে (বিভিন্ন লাইন awkবা sedএকই কাজটি করতে)
- (মানহীন)
grep -A/B/Cম্যাচের চারপাশে প্রসঙ্গে ফিরে আসা (আবার একইরকম ফ্যাশনে করতে ব্যথার সাথে sedবা awk)
sed
s/foo/bar/: sed এর sকমান্ডটিতে এমন বৈশিষ্ট্য রয়েছে যা কার্যকর করতে কার্যকর হয় awk:
s/foo\(.*\)bar/\1/g: ক্যাপচারিং (যদিও জিএনইউ এর সাথে এর gensub()জন্য এক্সটেনশন রয়েছে )
s/foo/bar/3: প্রতিটি লাইনের তৃতীয় ঘটনাটি প্রতিস্থাপন করুন
- (অ-মানক): ইন-প্লেস ফাইল সম্পাদনা (যদিও এটি জিএনইউ দ্বারা সমর্থিত)
awk এখন )।
awk
awk তিনটির মধ্যে সমৃদ্ধ সর্বাধিক বৈশিষ্ট্য।
- সংখ্যা মোকাবেলার জন্য ভাল
- কলামগুলিতে ফর্ম্যাট করা ইনপুট নিয়ে কাজ করার জন্য ভাল।
- এর উত্সাহী অ্যারে সহ বিভিন্ন উত্স থেকে ডেটা আহরণ এবং একত্রিত করার জন্য ভাল।
Perl
perlব্যবহারিক এক্সট্রাকশন এবং রিপোর্টিং সরঞ্জাম হিসাবে তাদের মধ্যে সর্বোত্তম। এটি প্রাথমিকভাবে এর জন্য ডিজাইন করা হয়েছিল (সেই সরঞ্জাম হতে যা এই সমস্ত sed/awk অপ্রচলিত )।
perlপাঠ্য প্রক্রিয়াকরণে দক্ষতা অর্জন একটি গুরুতর সুবিধা দেয়। sedউদাহরণস্বরূপ কম সাধারণ কমান্ডগুলি দেখার আগেও আমি এটিতে কিছুটা সময় ব্যয় করার পরামর্শ দেব ।
কর্মক্ষমতা
থাম্বের একটি নিয়ম হিসাবে, সরঞ্জামটি আরও বিশেষায়িত, কার্যটিতে এটি সবচেয়ে দক্ষ। তবে এটি বাস্তবায়নের উপরও অনেক বেশি নির্ভর করে, টাস্ক এবং কয়েকটি অন্যান্য কারণ ও কার্য সম্পাদনের ট্রেড-অফ থাকতে পারে যা বিবেচনায় নেওয়া দরকার হতে পারে।
উদাহরণস্বরূপ, কিছু grepবা sedবাস্তবায়ন রয়েছে যা খুব দ্রুত, তবে উদাহরণস্বরূপ তারা মাল্টিবাইট অক্ষরকে সমর্থন করে না তাই কেবলমাত্র ইউএস-ইংলিশ পাঠ্যে মাল্টি-বাইট লোকলে সঠিকভাবে কাজ করতে পারে। বা এগুলি দ্রুত কারণ তারা একটি ছোট স্থির দৈর্ঘ্যের বাফারে কাজ করে এবং এভাবে নির্বিচার ইনপুটটিতে কাজ করতে পারে না ...