যদি সমস্ত কিছু একটি ডিরেক্টরিতে থাকে তবে আপনি এটি করতে পারেন:
for file in *fileprefix*; do
grep 'search string' "$file" | tail -1
done
যদি এগুলি বড় ফাইল হয় tacতবে ফাইলটি বিপরীত ক্রমে (প্রথম লাইনটি প্রথমে) মুদ্রণ করে এবং তারপরে grep -m1প্রথম উপস্থিতির সাথে মিল রেখে গতি বাড়িয়ে তোলা উচিত worth এইভাবে, আপনি পুরো ফাইলটি পড়তে হবে না:
for file in *fileprefix*; do
tac file | grep -m1 'search string'
done
এই দুজনেই ধরে নিয়েছে যে কোনও ডিরেক্টরি মিলছে না fileprefix। যদি সেখানে থাকে তবে আপনি একটি ত্রুটি পাবেন যা আপনি কেবল উপেক্ষা করতে পারেন। যদি এটি কোনও সমস্যা হয় তবে কেবল ফাইলগুলির জন্য পরীক্ষা করুন:
for file in *fileprefix*; do
[ -f "$file" ] && tac file | grep -m1 'search string'
done
আপনার যদি প্রিন্ট করা ফাইলের নামও প্রয়োজন হয় তবে -Hপ্রতিটি grepঅনুরোধে যুক্ত করুন। অথবা, যদি আপনি grepএটি সমর্থন না করেন তবে এটি অনুসন্ধান করে বলুন /dev/null। এটি আউটপুট পরিবর্তন করবে না তবে যেহেতু grepএকাধিক ফাইল দেওয়া হয়েছে তাই এটি প্রতিটি হিটের জন্য সর্বদা ফাইলের নাম মুদ্রণ করবে:
for file in *fileprefix*; do
grep 'search string' "$file" /dev/null | tail -1
done