নিম্নলিখিত ইনপুট ফাইলটি বিবেচনা করুন:
1
2
3
4
চলমান
{ grep -q 2; cat; } < infile
কিছু মুদ্রণ করে না। আমি এটি মুদ্রণ আশা করি
3
4
আমি যদি এটিকে পরিবর্তন করি তবে আমি প্রত্যাশিত আউটপুট পেতে পারি
{ sed -n 2q; cat; } < infile
কেন প্রথম কমান্ড প্রত্যাশিত আউটপুট মুদ্রণ করে না?
এটা একটা seekable ইনপুট ফাইল এবং প্রতি এর মান অধীনে বিকল্প :
-q
Quiet. Nothing shall be written to the standard output, regardless of
matching lines. Exit with zero status if an input line is selected.
এবং আরও নীচে, অ্যাপ্লিকেশন ব্যবহারের অধীনে (খনিতে জোর দিন):
-q
বিকল্প সহজে নির্ণয় করা হোক বা না হোক একটি প্যাটার্ন (বা স্ট্রিং) ফাইল একটি গ্রুপ বিদ্যমান একটি উপায় প্রদান করে। বেশ কয়েকটি ফাইল অনুসন্ধান করার সময় এটি একটি পারফরম্যান্স উন্নতি সরবরাহ করে ( কারণ এটি প্রথম ম্যাচটি খুঁজে পাওয়ার সাথে সাথে এটি প্রস্থান করতে পারে ) [...]
এখন, একই মান অনুযায়ী (ইন ভূমিকা অধীন ইনপুট ফাইল )
যখন কোনও স্ট্যান্ডার্ড ইউটিলিটি একটি সন্ধানযোগ্য ইনপুট ফাইলটি পড়ে এবং ফাইলের শেষের দিকে পৌঁছানোর আগে কোনও ত্রুটি ছাড়াই শেষ হয়, ইউটিলিটি নিশ্চিত করবে যে ওপেন ফাইলের বিবরণে ফাইলটি অফসেটটি যথাযথভাবে ইউটিলিটি দ্বারা প্রসেস করা শেষ বাইটের ঠিক পরে রয়েছে [ ..]
tail -n +2 file
(sed -n 1q; cat) < file
...
দ্বিতীয় কমান্ডটি কেবল তখনই ফাইলটির সন্ধানের ক্ষেত্রে সমান।
কেন grep -q
পুরো ফাইলটি গ্রাস করে?
এটি gnu grep
যদি গুরুত্বপূর্ণ হয় (যদিও কুসালানন্দ কেবল ওপেনবিএসডি তে একই ঘটনা ঘটেছে তা নিশ্চিত করেছেন)
grep
কিছু বলা একটি কাঁটাচামচ হয় FreeGrep , কেউ যদি বিস্ময়ের।