সাধারণভাবে বলতে গেলে, কোনও সরঞ্জাম যত বেশি বিশেষজ্ঞ, তত দ্রুত। সুতরাং বেশিরভাগ ক্ষেত্রেই আপনি প্রত্যাশা করতে পারেন cut
এবং তার grep
চেয়েও দ্রুত হতে sed
এবং তার থেকেও দ্রুত হতে পারেন । যদি আপনি আরও জটিল সরঞ্জামগুলির একক অনুরোধের সাথে সরল সরঞ্জামগুলির দীর্ঘতর পাইপলাইনগুলির তুলনা করে থাকেন তবে থাম্বের কোনও নিয়ম নেই। এটি কেবল বৃহত ইনপুটগুলির সাথে গুরুত্বপূর্ণ (বলুন, কয়েক মিলিয়ন লাইন); সংক্ষিপ্ত ইনপুটগুলির জন্য, আপনি কোনও পার্থক্য দেখতে পাবেন না।sed
awk
আরও জটিল সরঞ্জামগুলির সুবিধা হ'ল তারা আরও বেশি কিছু করতে পারে।
আপনার আদেশগুলি বিড়ালকে অযথা ব্যবহার করে। পরিবর্তে পুনঃনির্দেশটি ব্যবহার করুন (বিশেষত যদি আপনি গতির বিষয়ে উদ্বিগ্ন হন, যদিও আপনি সম্ভবত বেঞ্চমার্ক না চালিয়ে যাওয়া পর্যন্ত গতি সম্পর্কে উদ্বিগ্ন হওয়া উচিত নয়)।
<fileName awk '/WORD/ { print $2 }'
<fileName grep WORD | cut -f 2 -d ' '
এই আদেশগুলি প্রায় সমতুল্য। পার্থক্যগুলি হ'ল:
- awk এবং grep এর বিভিন্ন regexp সিনট্যাক্স রয়েছে । অবর এবং
grep -E
প্রায় একই ধরণের রেজিএক্সপ্যাক সিনট্যাক্স (বর্ধিত নিয়মিত এক্সপ্রেশন) রয়েছে।
cut -d ' '
প্রতিটি স্বতন্ত্র স্থানের অক্ষরকে একটি সীমানার হিসাবে বিবেচনা করে। আওকের ডিফল্ট ডিলিমিটার হ'ল কোনও সাদা স্থান ক্রম, যা একাধিক স্পেস, একটি ট্যাব ইত্যাদি হতে পারে You আপনি বিচ্ছিন্ন হিসাবে স্বতঃস্ফূর্ত স্থান সিকোয়েন্সগুলি ব্যবহার করতে পারবেন না cut
। Awk মধ্যে বিভাজক, কোন RegExp একটি একক স্থান, একক স্থান নিয়ে গঠিত (যা একটি বিশেষ ক্ষেত্রে অর্থ "কোনো হোয়াইটস্পেস ক্রম" অর্থাৎ ডিফল্ট) কোন RegExp ছাড়া অন্য মেলে ক্ষেত্র বিভাজক সেট পৃথক স্পেস ব্যবহার করতে: awk -F '[ ]' '/WORD/ {print $2}'
।
Op প্রোগ্রাম অপ্টিমাইজেশনের প্রথম বিধি: এটি করবেন না। প্রোগ্রাম অপ্টিমাইজেশনের দ্বিতীয় বিধি (কেবল বিশেষজ্ঞদের জন্য!): এটি এখনও করবেন না। - মাইকেল এ। জ্যাকসন
echo filename
নাকিcat filename
?