ফাইল সংযুক্তিকরণ

এবার আমরা স্ট্যান্ডার্ড ইনপুট নিয়ে কাজ করে এমন একটি কমান্ড নিয়ে কাজ করবো। কমান্ডটি হল cat। এই কমান্ডটি যেকোনো ফাইল এর কন্টেন্ট স্ট্যান্ডার্ড ইনপুট হিসেবে ব্যবহার করে এবং স্ট্যান্ডার্ড আউটপুটে সেটাকে রিডিরেক্ট করে। এর কমান্ড কাঠামোটি এরকম:

cat [file...]

আমরা একাধিক ফাইলকে cat এর আর্গুমেন্ট হিসেবে ব্যবহার করতে পারি। সেক্ষেত্রে cat তাদের পরপর জুড়ে দিয়ে একসাথে আউটপুট দেবে। প্রকৃতপক্ষে এই কমান্ডটির কাজই হল ফাইল জুড়ে দেয়া। আসুন দেখে নেয়া যাক:

me@howtocode-pc:~$ ls e-books/ > ~/ls-e-books.txt
me@howtocode-pc:~$ ls Music/ > ls-music.txt
me@howtocode-pc:~$ cat ls-e-books.txt
a_game_as_old_as_empire_hxforum_org_sophie.pdf
BLFS-BOOK-7.5-nochunks.pdf
Craft and Skills
debian-handbook.pdf
Full_Circle
Harry Potter Series
JohnPerkins-ConfessionsOfAnEconomicHitman.pdf
LFS-BOOK-7.5.pdf
Religious
Sherlock Holmes
sherlock.pdf
tarashankar_bandyopadhyay_kobi.pdf
Unsorted
আফরোজা পারভিন
কবীর সুমন
গল্পসমগ্র-কমলকুমার মজুমদার.pdf
প্রণব ভট্ট
বুদ্ধদেব গুহ
বুদ্ধদেব বসু
মাইকেল মধুসূদন দত্ত
মীর মোশাররফ হোসেন
মুহম্মদ জাফর ইকবাল
রবীন্দ্রনাথ ঠাকুর
রবীন্দ্রনাথ ঠাকুর_
রুশ সাহিত্য
সুকুমার রায়
সুনীল গঙ্গোপাধ্যায়
হুমায়ুন আহমেদ
হুমায়ূন আজাদ
me@howtocode-pc:~$ cat ls-music.txt
Bob Dylan
Music
Pete Seeger - The Essential Pete Seeger (2005)
Ringtones
Soulful-Voice-Arjit-Singh-128Kbps-2014(Songs.PK)
Sufi
Veer
জল এর গান
জাতিস্মর
রতন দা
রবীন্দ্রসঙ্গীত
me@howtocode-pc:~$ cat ls-e-books.txt ls-music.txt
a_game_as_old_as_empire_hxforum_org_sophie.pdf
BLFS-BOOK-7.5-nochunks.pdf
Craft and Skills
debian-handbook.pdf
Full_Circle
Harry Potter Series
JohnPerkins-ConfessionsOfAnEconomicHitman.pdf
LFS-BOOK-7.5.pdf
Religious
Sherlock Holmes
sherlock.pdf
tarashankar_bandyopadhyay_kobi.pdf
Unsorted
আফরোজা পারভিন
কবীর সুমন
গল্পসমগ্র-কমলকুমার মজুমদার.pdf
প্রণব ভট্ট
বুদ্ধদেব গুহ
বুদ্ধদেব বসু
মাইকেল মধুসূদন দত্ত
মীর মোশাররফ হোসেন
মুহম্মদ জাফর ইকবাল
রবীন্দ্রনাথ ঠাকুর
রবীন্দ্রনাথ ঠাকুর_
রুশ সাহিত্য
সুকুমার রায়
সুনীল গঙ্গোপাধ্যায়
হুমায়ুন আহমেদ
হুমায়ূন আজাদ
Bob Dylan
Music
Pete Seeger - The Essential Pete Seeger (2005)
Ringtones
Soulful-Voice-Arjit-Singh-128Kbps-2014(Songs.PK)
Sufi
Veer
জল এর গান
জাতিস্মর
রতন দা
রবীন্দ্রসঙ্গীত

প্রথমে আমরা ls e-books/ > ls-e-books.txt কমান্ড দিয়ে e-books ফোল্ডারের কন্টেন্ট এর লিস্ট ls-e-books.txt ফাইলে রিডিরেক্ট করে সংরক্ষণ করলাম। একইভাবে ls Music/ > ls-music.txt কমান্ড দিয়ে Music ফোল্ডারের কন্টেন্টের লিস্ট সংরক্ষণ করলাম ls-music.txt ফাইলে।

এর পরেরন কমান্ডদুটি অর্থাৎ cat ls-e-books.txt এবং cat ls-music.txt কমান্ড দিয়ে ওই ফাইলগুলোর কন্টেন্ট আলাদাভাবে দেখিয়েছি।

সবশেষে cat ls-e-books.txt ls-music.txt কমান্ড দিয়েছি। ফলে দুটি ফাইলের কন্টেন্ট জুড়ে দিয়ে স্ক্রীনে দেখিয়েছে। আমরা চাইলে এই আউটপুট '>' দিয়ে এই আউটপুট অন্য কোনো ফাইলে রিডিরেক্ট করে দিতে পারতাম।

মজার বিষয় হচ্ছে cat শুধু টেক্সট না যেকোনো কিছু জুড়ে দিতে পারে। মনে করুন আপনি ইন্টারনেট থেকে একটি মুভি নামিয়েছেন। যে আপলোড করেছে সে এটিকে ছোট ছোট ভাগ করে আপলোড করেছে। আপনাকে সবগুলো নামিয়ে করে নিতে হবে। মনে করি এরকম ছোট ছোট ১৫টা ফাইল আছে। movie.mpeg.001, movie.mpeg.002.... এরকম করে movie.mpeg.015 পর্যন্ত। আমরা এগুলো পরপর জুড়ে দিয়ে movie.mpeg ফাইল বানাতে পারি এভাবে:

me@howtocode-pc:~$ cat movie.mpeg.0* > movie.mpeg

এখানে আমরা সবফাইলগুলো '' ওয়াইল্ডকার্ডের মাধ্যমে সিলেক্ট করেছি আর ওয়াইল্ডকার্ড সবসময়ই ক্রম বজায় রাখে অর্থাৎ এটা 001, 002.... 015 এভাবেই সিলেক্ট করবে। *cat দিয়ে এদের জুড়ে দিয়েছি এবং এর আউটপুট '>' চিহ্ন দিয়ে movie.mpeg ফাইলে রিডিরেক্ট করে দিয়েছি।

আমরা যদি কোনো আর্গুমেন্ট ছাড়া cat কমান্ডটি ব্যবহার করি এভাবে:

me@howtocode-pc:~$ cat

তাহলে আপনি দেখবেন প্রম্পট ফিরে আসছে না। দেখে মনে হতে পারে হ্যাং হয়ে গেছে। আসলে তা হয়নি। cat তখন আসলে আপনার কাছ থেকে ইনপুট আশা করছে। আপনি যেকোনোকিছু লিখে এন্টার চাপলে সেটা cat স্ট্যান্ডার্ড আউটপুটে পাঠাবে। এরকম:

me@howtocode-pc:~$ cat
আমি সব দেখে শুনে ক্ষেপে গিয়ে করি বাঙলায় চিৎকার!
আমি সব দেখে শুনে ক্ষেপে গিয়ে করি বাঙলায় চিৎকার!

সবশেষে আপনি ctrl-d চেপে এখান থেকে বেরতে পারবেন।

আমরা চাইলে এই আউটপুট কোনো ফাইলে রিডিরেক্ট করতে পারি। তখন নীচে আউটপুট না দেখিয়ে সেই ফাইলে পাঠিয়ে দেবে:

me@howtocode-pc:~$ cat > চিৎকার.txt
আমি সব দেখে শুনে ক্ষেপে গিয়ে করি বাঙলায় চিৎকার!

আবার আমরা সেই ফাইলটার কন্টেন্ট ইনপুট হিসেবে cat এ দিতে পারি '<' চিহ্ন দিয়ে:

me@howtocode-pc:~$ cat < চিৎকার.txt
আমি সব দেখে শুনে ক্ষেপে গিয়ে করি বাঙলায় চিৎকার!