বাংলায় শেল স্ক্রিপ্টিং- পর্ব ৪ [এডভান্সড ফাইল আপারেশন]

আগের লিনাক্স টার্মিনাল নিনজা সিরিজে বেসিক কিছু ফাইল অপারেশন নিয়ে আলোচনা করেছিলাম। আমরাব সেই কাজগুলই একটু এফিসিয়েন্ট ওয়েতে সহজে করার চেষ্টা করবো। ফাইল আপারেশন টার্মিনাল অপারেট করার জন্য খুবই প্রয়োজনীয় একটা লেসন। আমরা সহজভাবে তা বুঝার চেষ্টা করবো…

আমরা আগেই জেনেছি ফাইলের মধ্যে কি আছে তা cat কী-ওয়ার্ড দিয়ে দেখতে পারি।

  • আমাদের যদি file1 নামে একটি ফাইল থাকে তাহলে সেই ফাইলের মধ্যেকার সবকিছু দেখতে হলে লিখতে হবে cat file1

এভাবে ফাইলের মধ্যে যাকিছু আছে তা দেখে নেই এবং এরপর অন্যান্য অপারেশন শুরু করি-

টার্মিনাল থেকে ফাইল ইডিট করা

টার্মিনাল থেকে কোন ফাইলের মধ্যেকার লেখাগুলো ইডিট করতে হলে cat>fileName কমান্ড দিয়ে আমরা ফাইলটি ইডিট করতে পারি। অর্থাৎ মনে করি আমরা file1 এর মধ্যে যাকিছু আছে তা ফেলে দিয়ে নতুন করে কিছু লিখবো, তাহলে ডিরেক্টরিতে গিয়ে কমান্ড লিখি-

  • এই কমান্ড লিখে এন্টার প্রেস করলে টার্মিনালে লেখার জন্য মুড তৈরি হবে। এবার আমাদের ইচ্ছামতো লেখালেখি করে CTRL+Z একসাথে প্রেস করলেই লেখার মুড থেকে বের হয়ে আসবে এবং ফাইলে টেক্সটগুলো সেইভ হয়ে যাবে।

 

ফাইলের এলিমেন্টগুলো অন্য ফাইলে রিপ্লেস করা

টার্মিনাল থেকে যদি আমরা একটি ফাইলে যাকিছু আছে সেগুলো অন্য একটি ফাইলে রিপ্লেস করতে চাই তাহলে cat sourceFile>destinationFile কমান্ড ইউজ করে করতে পারি। অর্থাৎ মনে করি আমরা file1 এ যাকিছু আছে তা file2 এর কন্টেন্টগুলোর সাথে রিপ্লেস হয়ে যাবে, তাহলে টার্মিনালে কমান্ড লিখি-

  • এই কমান্ড দিলেই file1 এর কন্টেন্টগুলো file2 তে চলে যাবে, সেক্ষেত্রে file2 এর আগের কন্টেন্ট আর থাকবে না।
  • একই ভাবে যদি দুইটা ফাইল থেকে অন্য একটি ফাইলে কন্টেন্ট রিপ্লেস করতে চাই তাহলে একইভাবে লিখবো cat file1 file2>file3

 

ফাইলের এলিমেন্টগুলো অন্য ফাইলে কপি করা

টার্মিনাল থেকে যদি আমরা একটি ফাইলে যাকিছু আছে সেগুলো অন্য একটি ফাইলে কপি করতে চাই তাহলে cat sourceFile>>destinationFile কমান্ড ইউজ করে করতে পারি। অর্থাৎ মনে করি আমরা file1 এ যাকিছু আছে তা file2 এর মধ্যে কপি হয়ে যাবে, তাহলে টার্মিনালে কমান্ড লিখি-

  • এই কমান্ড দিলেই file1 এর ফাইলগুলো file2 তে কপি হয়ে যাবে, সেক্ষেত্রে file2 এর আগের কন্টেন্টগুলোও থেকে যাবে।
  • একই ভাবে যদি দুইটা ফাইল থেকে অন্য একটি ফাইলে কন্টেন্ট কপি করতে চাই তাহলে একইভাবে লিখবো cat file1 file2>>file3

 

ফাইলের এলিমেন্টগুলো সর্ট করা

টার্মিনালে সর্টিং করা মজার একটা জিনিস, এর মাধ্যমে আমরা ফাইলের মধ্যে থাকা কন্টেন্টগুলো অন্য একটি ফাইলে দেখবো এবং সেটি সর্টেড অবস্থায়। মনেকরি file1 নামক কোন ফাইলের কন্টেন্টগুলো Result নামে একটা ফাইলের মধ্যে সর্ট করে রাখতে চাই। তাহলে আমরা sort -oDestinationFile fileName লিখে কাজটি করতে পারি। এবার আমাদের ফাইলের জন্য লিখি-

  • এটা টার্মিনালে এক্সিকিউট করলে Result নামে একটা ফাইল ডিরেক্টরিতে তৈরি হয়ে যাবে এবং file1 এর কন্টেন্টগুলো সর্ট হয়ে ওই ফাইলে কপি হয়ে থাকবে।
  • এখানে ডেসটিনেশন ফাইলের নামের আগে একটি o ইউজ করা হয়েছে, চাইলে ডেসটিনেশন ফাইল আমরা অন্য নামও দিতে পারি।
  • একইভাবে যদি দুইটি ফাইলের মধ্যে থেকে কন্টেন্টগুলো সর্ট করে Result ফাইলে রাখতে চাই তাহলে লিখবো sort -Result file1 file2

ফাইল অপারেশন আপাতত এপর্যন্তই। পরবর্তীতে লুপিং এবং শেল প্রোগ্রামিং এর আরও এডভান্সড কিছু টপিক নিয়ে আলোচনা করার ট্রাই করবো। ধন্যবাদ সবাইকে…