লাইন সাজান
যেকোনো তালিকা সাজিয়ে নিন: দুই দিকেই বর্ণানুক্রমে, ন্যাচারাল ক্রমে, প্রতিটি লাইনের প্রথম সংখ্যা অনুযায়ী, দৈর্ঘ্য অনুযায়ী, অথবা এলোমেলোভাবে। সাজানোর কাজে আপনার ব্রাউজারের নিজস্ব ভাষার নিয়ম ব্যবহার হয় এবং পুরো প্রক্রিয়াটি আপনার ডিভাইসেই চলে।
০টি অক্ষর · ০টি শব্দ · ০টি লাইন
০টি অক্ষর · ০টি শব্দ · ০টি লাইন
সম্পূর্ণ এই ব্রাউজার ট্যাবেই চলে। আপনার টেক্সট কখনও আপলোড বা সংরক্ষণ করা হয় না।
এটি কী করে
লাইন সাজান আপনার ব্রাউজারের ভাষা-সচেতন কোলেশন দিয়ে বর্ণানুক্রমে, প্রাকৃতিক ক্রমে (file2 আগে, file10 পরে), প্রতিটি লাইনের প্রথম সংখ্যা অনুযায়ী, দৈর্ঘ্য অনুযায়ী বা এলোমেলোভাবে লাইন সাজায়।
item 10 item 9 Item 1
Item 1 item 9 item 10
বর্ণানুক্রম আর ক্যারেক্টার কোডের ক্রম এক নয়
কম্পিউটারের জন্য টেক্সট সাজানোর সবচেয়ে সহজ উপায় হলো ক্যারেক্টার কোড ধরে সাজানো, কিন্তু এতে অদ্ভুত ফল আসে: প্রতিটি বড় হাতের অক্ষর (ASCII-তে কোড ৬৫ থেকে ৯০) প্রতিটি ছোট হাতের অক্ষরের (৯৭ থেকে ১২২) আগে আসে, তাই "Zebra" চলে যায় "apple"-এর আগে, আর অ্যাকসেন্টযুক্ত অক্ষর z-এর পরে বসে। মানুষ চায় অভিধানের ক্রম, যাকে ভাষাবিজ্ঞানীরা কোলেশন বলেন। এই টুল Intl.Collator ব্যবহার করে, যা ব্রাউজারে Unicode Collation Algorithm-এর বাস্তবায়ন, তাই "apple", "Banana" ও "éclair" পাঠকের প্রত্যাশামতো সাজানো হয়।
কোলেশন ভাষার ওপরও নির্ভর করে। জার্মান অভিধানে ä থাকে a-এর সঙ্গে, আর সুইডিশে å, ä ও ö বর্ণমালার একদম শেষে z-এর পরে বসে। টুলটি আপনার ব্রাউজারের ডিফল্ট লোকেল ব্যবহার করে, তাই সুইডিশ সিস্টেমে সাজানো তালিকা সুইডিশ নিয়ম মানে। ছোট-বড় হাতের পার্থক্য উপেক্ষা চালু থাকলে যে অক্ষর শুধু কেস বা অ্যাকসেন্টে আলাদা, সেগুলো সমান ধরা হয় এবং পরবর্তী পার্থক্য দেখে সাজানো হয়।
ন্যাচারাল, সংখ্যাভিত্তিক ও দৈর্ঘ্যভিত্তিক ক্রম
বর্ণানুক্রমিক ক্রমে অঙ্কগুলো একটি একটি করে তুলনা করা হয়, তাই 1 ছোট বলে "file10" আসে "file2"-এর আগে। স্বাভাবিক ক্রমে পরপর থাকা অঙ্কগুলোকে পূর্ণ সংখ্যা ধরা হয় এবং ফল হয় file1, file2, file10, যেভাবে Windows Explorer ও macOS Finder-এর মতো ফাইল ম্যানেজার নাম দেখায়। অধ্যায়ের শিরোনাম, ভার্সন তালিকা, ইনভয়েস নম্বর এবং IMG_9 ও IMG_10-এর মতো ছবির নামের জন্য এটি ব্যবহার করুন।
সংখ্যাভিত্তিক ক্রমে প্রতিটি লাইনের প্রথম সংখ্যা খোঁজা হয়, মাইনাস চিহ্ন ও দশমিকসহ, এবং তার মান অনুযায়ী সাজানো হয়। এটি দামের তালিকা, স্কোর এবং "12 apples"-এর মতো লাইনের জন্য উপযোগী। যেসব লাইনে সংখ্যা নেই সেগুলো শেষে চলে যায়। দৈর্ঘ্য ক্রমে দৃশ্যমান অক্ষরের সংখ্যা অনুযায়ী ছোট থেকে বড় সাজানো হয়, সমান হলে বর্ণানুক্রমে; সবচেয়ে ছোট ডোমেইন নাম খুঁজতে বা কাটা পড়া এন্ট্রি ধরতে এটি কাজে লাগে।
এলোমেলো করা কীভাবে কাজ করে
শাফল Fisher–Yates অ্যালগরিদম ব্যবহার করে (১৯৩৮ সালে Ronald Fisher ও Frank Yates প্রকাশ করেন, ১৯৬৪ সালে Richard Durstenfeld কম্পিউটারের উপযোগী করেন), যা তালিকার শেষ থেকে এগিয়ে প্রতিটি লাইনকে তার আগের বা নিজের অবস্থানের যেকোনো একটি র্যান্ডম লাইনের সঙ্গে বদলায়। ভালো র্যান্ডম উৎস থাকলে প্রতিটি ক্রমের সম্ভাবনা সমান। র্যান্ডম সংখ্যা আসে mulberry32 থেকে, যা একটি ছোট সিডযুক্ত সিউডো-র্যান্ডম জেনারেটর, তাই নতুন শাফল না চাওয়া পর্যন্ত ফল একই থাকে। এর স্টেট ৩২ বিটের হওয়ায় সর্বোচ্চ প্রায় ৪.৩ বিলিয়ন ভিন্ন শাফল হতে পারে, যা মাত্র ১৩টি লাইনের ৬.২ বিলিয়ন ক্রমের চেয়ে কম। কুইজের প্রশ্ন, প্লেলিস্ট বা উপস্থাপনার ক্রম ঠিক করতে এটি যথেষ্ট, কিন্তু লটারি বা অর্থ ও নিরাপত্তা জড়িত কাজের জন্য নয়।
সাজানোর আগে তালিকা পরিষ্কার করতে প্রথমে Remove Duplicate Lines চালিয়ে নিন।
সচরাচর জিজ্ঞাসা
- file10 কেন file2-এর আগে চলে আসে?
- সাধারণ বর্ণানুক্রমে অক্ষর ধরে ধরে তুলনা হয় এবং 1 আসে 2-এর আগে। file2 কে file10-এর আগে পেতে স্বাভাবিক ক্রম বেছে নিন, যা পরপর থাকা অঙ্কগুলোকে একটি সংখ্যা হিসেবে ধরে।
- সাজালে কি বড় হাতের অক্ষরের শব্দ আগে আসে?
- না। সাজানো হয় ভাষা-সচেতন কোলেশনে, তাই apple ও Apple পাশাপাশি থাকে। শুধু সরল ক্যারেক্টার কোড অনুযায়ী সাজালে সব বড় হাতের অক্ষর ছোট হাতের আগে আসে।
- এলোমেলো করা কি সত্যিই র্যান্ডম?
- এটি দ্রুত সিডযুক্ত সিউডো-র্যান্ডম জেনারেটরচালিত নিরপেক্ষ Fisher–Yates শাফল ব্যবহার করে। দৈনন্দিন কাজের জন্য এটি যথেষ্ট ন্যায্য, কিন্তু ড্র, লটারি বা নিরাপত্তার জন্য উপযুক্ত নয়।
- সংখ্যাভিত্তিক ক্রমে যেসব লাইনে কোনো সংখ্যা নেই সেগুলো কোথায় যায়?
- তালিকার শেষে, নিজেদের মধ্যে বর্ণানুক্রমে। যেসব লাইনে সংখ্যা আছে সেগুলো লাইনে পাওয়া প্রথম সংখ্যার মান অনুযায়ী সাজানো হয়।
- লাইনগুলো কি উল্টো বর্ণানুক্রমে সাজানো যায়?
- হ্যাঁ, Z→A বেছে নিন। এটি A→Z-এর মতোই ভাষা-সচেতন তুলনা ব্যবহার করে, শুধু উল্টো ক্রমে, তাই অ্যাকসেন্টযুক্ত ও বড় হাতের শব্দ যথাযথ জায়গায় থাকে।