sed
এবং awk
সুপারসেটস grep
, এমন কিছু জিনিস রয়েছে যা এক বা অন্যটির সাথে করা সহজ।
grep foo
লেখা যেতে পারে sed '/foo/!d'
বা awk /foo/
, তবে বিবেচনা করুন:
grep -i foo
sed '/[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
বাস্তবায়ন রয়েছে যা খুব দ্রুত, তবে উদাহরণস্বরূপ তারা মাল্টিবাইট অক্ষরকে সমর্থন করে না তাই কেবলমাত্র ইউএস-ইংলিশ পাঠ্যে মাল্টি-বাইট লোকলে সঠিকভাবে কাজ করতে পারে। বা এগুলি দ্রুত কারণ তারা একটি ছোট স্থির দৈর্ঘ্যের বাফারে কাজ করে এবং এভাবে নির্বিচার ইনপুটটিতে কাজ করতে পারে না ...