আমি সন্দেহ করি যে এটি অনেক বেশি গুরুত্বপূর্ণ।
আমি একটি লুপ ব্যবহার করব, কেবলমাত্র কারণ আমি জানি না তালিকার ফাইলটিতে কতগুলি ফাইল তালিকাভুক্ত রয়েছে এবং ফাইল নামগুলির কোনওটির ফাঁকে ফাঁকা স্থান রয়েছে কিনা আমি (সাধারণত) জানি না। কমান্ড প্রতিস্থাপনের ফলে আর্গুমেন্টের খুব দীর্ঘ তালিকা তৈরি হবে যখন উত্পন্ন তালিকার দৈর্ঘ্য খুব দীর্ঘ হবে তখন "আর্গুমেন্ট তালিকা খুব দীর্ঘ" ত্রুটি হতে পারে।
আমার লুপ দেখতে হবে
while IFS= read -r name; do
gunzip "$name"
done <file.list
এটি অতিরিক্তভাবে কমান্ডের পরে ডেটা প্রক্রিয়াকরণের জন্য কমান্ড সন্নিবেশ করার অনুমতি দেয় gunzip
। প্রকৃতপক্ষে, ডেটা আসলে কী এবং এটি দিয়ে কী করা দরকার তার উপর নির্ভর করে, ফাইলটি সংরক্ষণ না করে এটিকে প্রক্রিয়া করা এমনকি সম্ভব হতে পারে:
while IFS= read -r name; do
zcat "$name" | process_data
done <file.list
( process_data
এমন কোনও পাইপলাইন যেখানে স্ট্যান্ডার্ড ইনপুট থেকে সঙ্কুচিত ডেটা পড়ে)
যদি ডেটা প্রসেসিং এর জটিলতা থেকে বেশি সময় নেয়, তবে লুপটি আরও দক্ষ কিনা তা প্রশ্ন অপ্রাসঙ্গিক হয়ে যায়।
আদর্শভাবে , আমি যদিও ফাইলনামগুলির একটি তালিকা কাজ না করা পছন্দ করি এবং এর পরিবর্তে ফাইলের নাম গ্লোব্বিং প্যাটার্ন ব্যবহার করি
for name in ./*.gz; do
# processing of "$name" here
done
./*.gz
প্রাসঙ্গিক ফাইলগুলির সাথে মেলে এমন কিছু প্যাটার্ন কোথায় । এইভাবে আমরা ফাইলের সংখ্যার উপর নির্ভর করি না বা ফাইলের নামগুলিতে ব্যবহৃত অক্ষরগুলির উপর নির্ভর করি না (সেগুলিতে নিউলাইনস বা অন্যান্য শ্বেত স্পেস অক্ষর থাকতে পারে, বা ড্যাশ ইত্যাদির সাহায্যে শুরু করা যেতে পারে))
সম্পর্কিত:
gzip
আপনার সিস্টেমে শুরু হতে কত সময় নেয় , ফাইল তালিকার ফাইলগুলির সংখ্যা এবং এই ফাইলগুলির আকারের উপর নির্ভর করবে ।