cat
ফাইলগুলিতে অস্তিত্ব নেই এমন ডেটা আউটপুট করতে পারে না। যদি কোনও ফাইল খালি থাকে তবে আউটপুট হিসাবে খালি লাইন সরবরাহ করার জন্য এটিতে একটি নতুন লাইন অক্ষরও নেই।
আপনি নিশ্চিত করতে পারেন যে ফাইলগুলিতে কমপক্ষে একটি নতুন লাইনের অক্ষর রয়েছে।
এটি awk
নিশ্চিত করতে আপনি এইভাবে জিএনইউ ব্যবহার করেন (এটি খালি ফাইলগুলিকে সংশোধন করে):
awk 'ENDFILE { if (FNR == 0) printf("\n") >>FILENAME }' 2[0-8]_SumActive.txt
যে ENDFILE
কোনও ফাইল পড়া শেষ করে ব্লকটি কার্যকর করা হবে। যদি FNR
শূন্য হয় তবে আমরা ফাইলটিতে কোনও লাইন দেখতে পাইনি, সুতরাং আমরা এটিতে একটি নতুন লাইন .োকি। এরপরে স্ক্রিপ্টটি পরবর্তী ফাইলটি দিয়ে চালিয়ে যায়।
তারপরে আপনি প্রশ্নের cat
মতো করে ব্যবহার করতে পারেন ।
বিকল্পভাবে, ফাইলগুলি পরিবর্তন না করে GNU এর awk
পরিবর্তে ব্যবহার করুন cat
:
awk 'ENDFILE { if (FNR == 0) printf("\n") } 1' 2[0-8]_SumActive.txt
এটি উপরের মত খালি ফাইলগুলি সনাক্তকরণের একই ধরণের কাজ করে তবে ফাইলটির পরিবর্তে নতুন লাইনটি স্ট্যান্ডার্ড আউটপুটে মুদ্রণ করে। 1
শেষে দ্বারা প্রতিস্থাপিত হতে পারে { print }
এবং অ খালি ফাইল সমস্ত ডেটা outputted করা হবে।
বিকল্পভাবে, একটি শেল লুপ (যে কোনও POSIX শেলের মধ্যে কাজ করা উচিত):
for name in ./2[0-8]_SumActive.txt; do
if [ -s "$name" ]; then
cat "$name"
else
printf '\n'
fi
done
-s
পরীক্ষা সত্য হতে হবে ফাইল বিদ্যমান এবং শূন্য থেকে বড় একটি আকার বেশি।
যদি আপনি [Blank]
খালি ফাইলগুলির জন্য আক্ষরিক স্ট্রিং আউটপুট করতে চান তবে উপরের \n
কলগুলিতে কেবল সেই স্ট্রিংটি sertোকান (এটি কোডটিতেও printf
কাজ করবে awk
)।