নিম্নলিখিত চেষ্টা করুন (শুরু /home/johnny/
):
for f in * ; do awk 'BEGIN {print "Hello\n";} {gsub("([ \t]+)$", ""); print $0; }' "$f" >"$f.2"; done
এটি .2
একই ডিরেক্টরিতে ফাইল তৈরি করে। এই ফাইলগুলিতে পরিবর্তন রয়েছে।
for
বিবৃতি ডিরেক্টরির মধ্যে সব ফাইল তালিকাবদ্ধ করে। আপনি যদি কেবলমাত্র পাঠ্য ফাইলগুলি প্রক্রিয়া করতে চান তবে আপনি এর *.txt
পরিবর্তে ব্যবহার করতে পারেন *
।
awk
সঞ্চালিত 2 কর্ম:
- "হ্যালো" এবং ফাঁকা লাইন দিয়ে প্রতিটি ফাইল প্রস্তুত করে।
- প্রতিটি লাইনের শেষে থেকে স্পেস এবং ট্যাব অক্ষর সরিয়ে দেয়।
ফলাফলগুলি স্ট্যান্ডার্ড আউটপুটে প্রদর্শিত হয়।
শেষ পর্যন্ত একটি সাধারণ পুনঃনির্দেশ .2
প্রক্রিয়াজাত স্ট্যান্ডার্ড আউটপুট থেকে ফাইলগুলি তৈরি করে ।
এটি ফাইলগুলিতে তাদের নামে ফাঁকা স্থান নিয়ে কাজ করে, কারণ $f
উদ্ধৃত হয়েছে।
আপনি যদি মূল ফাইলগুলি রাখতে না চান তবে কমান্ডটি নিম্নরূপে পরিবর্তন করুন:
for f in * ; do awk 'BEGIN {print "Hello\n";} {gsub("([ \t]+)$", ""); print $0; }' "$f" >"$f.2"; mv "$f.2" "$f"; done
প্রধান সংযোজন হ'ল মুভ কমান্ড যা পরিবর্তিত সংস্করণ সহ মূল ফাইলগুলিকে প্রতিস্থাপন করে।