लाइन सॉर्टर
टेक्स्ट पंक्तियों को क्रमबद्ध, उलटा, डीडुप्लिकेट या यादृच्छिक रूप से मिलाएँ।
सॉर्ट मोड
लाइन सॉर्टिंग के बारे में
लाइन सॉर्टिंग प्रत्येक पंक्ति की चुने हुए क्रम में तुलना करके टेक्स्ट व्यवस्थित करती है। सूचियों, शब्दकोषों के लिए वर्णमाला क्रम उपयोगी है।
यह टूल डुप्लिकेट पंक्तियों को भी हटाता है, खाली पंक्तियाँ निकालता है, स्पेस साफ़ करता है, क्रम उलटता है या यादृच्छिक रूप से फेरबदल करता है।
सामान्य उपयोग
- नाम, आइटम या प्रविष्टियों की सूची को वर्णमाला क्रम में लगाएँ
- CSV कॉलम मान या लॉग प्रविष्टियाँ क्रम में लगाएँ
- फ़ाइल या डेटासेट से डुप्लिकेट हटाएँ
- लॉटरी या खेल में यादृच्छिक वितरण के लिए सूची से लॉट चुनें
- संख्याओं को छोटे से बड़े या उल्टे क्रम में लगाएँ
- स्पेस और खाली पंक्तियाँ हटाकर डेटा साफ़ करें
अक्सर पूछे जाने वाले प्रश्न
संख्यात्मक क्रम कैसे काम करता है?
संख्यात्मक क्रम प्रत्येक पंक्ति की शुरुआत से संख्या निकालता है और उस मान के अनुसार क्रम लगाता है। जो पंक्तियाँ संख्या से शुरू नहीं होतीं, उन्हें अंत में रखा जाता है।
"डुप्लिकेट हटाएँ" क्या करता है?
यह विकल्प उन पंक्तियों को हटाता है जो एक से अधिक बार दिखाई देती हैं, केवल पहली घटना को रखता है।
क्या फेरबदल वास्तव में यादृच्छिक है?
फेरबदल Math.random() के साथ Fisher-Yates एल्गोरिथम का उपयोग करता है। यह सामान्य उपयोग जैसे सूचियों को यादृच्छिक करने के लिए उपयुक्त है।
Line sorting kya hai?
Line sorting एक text file या list की rows को एक चुने हुए नियम के अनुसार फिर से क्रमबद्ध करने की क्रिया है. नियम lexicographic हो सकता है (characters को उनके Unicode code point द्वारा बाएँ से दाएँ compare करना), numeric (एक प्रमुख number निकालना और values compare करना), length-based (character counts compare करना), या random (एक Fisher-Yates shuffle जो समान रूप से random permutation बनाता है). हर नियम आपके data के बारे में एक अलग प्रश्न का उत्तर देता है.
यह tool आठ sort modes (A से Z, Z से A, numeric ascending, numeric descending, सबसे छोटा पहले, सबसे लंबा पहले, shuffle, reverse) plus चार toggleable options (case-insensitive, whitespace trim करें, duplicates हटाएँ, खाली lines हटाएँ) उजागर करता है. Combinations उन रोज़मर्रा के list-cleaning workflows को कवर करते हैं जिन्हें पहले sort, uniq, awk और एक shell pipeline के साथ Bash one-liner की आवश्यकता थी. अब आप lines paste करते हैं, एक mode और कुछ checkboxes click करते हैं, और परिणाम पढ़ते हैं.
सारी गणना आपके browser में JavaScript के built-in Array.prototype.sort का उपयोग करके होती है, जो 2018 से V8, JavaScriptCore और SpiderMonkey में TimSort (merge sort और insertion sort का hybrid, stable और worst-case O(n log n)) का उपयोग करता है. एक लाख से कम lines वाली lists के लिए, operation आपके mouse button को छोड़ने में लगने वाले समय से तेज़ी से पूरा होता है.
Sorter ke andar kya hai
Interface तीन controls को stack करता है: एक input textarea जहाँ आप अपनी lines paste करते हैं, आठ mode buttons की एक row जो सक्रिय चयन को highlight करती हैं, और चार checkboxes की एक row dedup-and-trim options के लिए. उनके नीचे Sort Lines action button है, जो read-only output textarea बनाता है और उसके नीचे line counter update करता है.
Input और output के ऊपर और नीचे line counters आपको एक नज़र में operation की sanity-check करने देते हैं: यदि आपने 1,234 lines से शुरू किया था और Remove Duplicates tick किया था, output count आपको तुरंत बताता है कि कितने duplicates हटाए गए. यह shortcut उसी काम के लिए एक बार वाली Python या AWK script लिखने से तेज़ है.
तीन actions नीचे लपेटते हैं: Copy Result Clipboard API के माध्यम से output को आपके clipboard में लिखता है, Download .txt LF line endings के साथ एक UTF-8 text file save करता है, और Clear दोनों textareas को खाली करता है. कोई इतिहास नहीं रखा जाता, कोई settings टिकती नहीं, और page refresh करने से tool अपनी डिफ़ॉल्ट A-to-Z स्थिति में लौट आता है.
Itihaas aur prishthbhumi
Hollerith punch-card sorters (1890)
Herman Hollerith का 1890 US Census के लिए बनाया गया punch-card sorter एक छिद्रित छेद की स्थिति के आधार पर हर card को 12 bins में से एक में यांत्रिक रूप से गिरा देता था. Operators cards को sorter से एक बार हर digit के लिए, कई बार पास करते थे, ताकि एक पूरा numeric sort बनाया जा सके. तकनीक को radix sort कहा जाता था, और इसने अगले 60 वर्षों के लिए business computing को आधार दिया. IBM, जो 1911 में Computing-Tabulating-Recording Company के रूप में स्थापित हुई, सीधे Hollerith की मशीनों से निकली.
John von Neumann merge sort का वर्णन करते हैं (1945)
EDVAC पर 1945 की एक आंतरिक report में, John von Neumann ने merge sort का वर्णन किया, एक stored-program computer के लिए लिखा गया पहला algorithm. विचार पुनरावर्ती है: list को दो में विभाजित करें, हर half को sort करें, फिर दोनों sorted halves को बार-बार छोटे front element लेकर merge करें. Merge sort divide-and-conquer का एक textbook उदाहरण बना हुआ है और TimSort का आधार है, वह algorithm जो V8 आज Array.prototype.sort के लिए उपयोग करता है.
Tony Hoare quicksort का आविष्कार करते हैं (1959)
Tony Hoare, जो उस समय 25 साल के थे और Russian सीखने के लिए Moscow State University जा रहे थे, 1959 में quicksort design किया जब वे Russian शब्दों की एक list को एक English dictionary के विरुद्ध sort करने की कोशिश कर रहे थे. Algorithm एक pivot चुनता है, list को उसके आस-पास partition करता है, और हर तरफ recurse करता है. औसत मामला O(n log n) है, worst case O(n squared), लेकिन व्यवहार में यह cache locality के कारण merge sort से बेहतर प्रदर्शन करता है. Hoare ने 1980 में Turing Award जीता.
J.W.J. Williams heapsort पेश करते हैं (1964)
J.W.J. Williams ने 1964 में Communications of the ACM में heapsort प्रकाशित किया. Algorithm एक binary heap बनाता है (एक tree जहाँ हर parent अपने children के कम से कम बराबर बड़ा होता है) और root को बार-बार निकालता है. Average और worst case दोनों में O(n log n) की गारंटी, कोई अतिरिक्त memory नहीं, लेकिन cache-अमित्रवत. Heapsort C++ के std::sort (Introsort, 1997) के अंदर worst-case fallback है.
ASCII sort order को निश्चित करता है (1963 से 1967)
ASCII, 1963 में अनुमोदित और 1967 में संशोधित, ने codes 48 से 57 को digits 0 से 9 और 65 से 90 को uppercase A से Z को निर्दिष्ट किया. परंपरा कि 0 9 से पहले sort होता है, 9 A से पहले, A Z से पहले (और uppercase lowercase से पहले sort होता है) तब से दुनिया द्वारा बनाए गए हर डिफ़ॉल्ट lexicographic sort में अंतर्निहित है. यही कारण है कि "Apple" "apple" से पहले sort होता है और जब आप strings को character-by-character compare करते हैं तो "10" "9" से पहले क्यों sort होता है.
Unicode Collation Algorithm (1996)
Unicode Consortium ने 1996 में पहला Unicode Collation Algorithm (UCA) प्रकाशित किया, UTS #10 के रूप में codified. UCA हर code point को multi-level weight (primary, secondary, tertiary) देता है ताकि sorting locale-aware हो सके: जर्मन में, ä context के अनुसार a के साथ या z के बाद sort हो सकता है; Swedish में, å z के बाद sort होता है; Spanish में, ñ n के बाद sort होता है. JavaScript का Intl.Collator (2014) UCA को wrap करता है और यही web पर locale-correct list sorting को शक्ति देता है.
Praayogik workflows
नामों की एक list को alphabetize करना
आपके पास एक class roster, attendee list, या एक spreadsheet column से paste किया गया contact dump है. Paste करें, Case insensitive tick करें (ताकि "alice" और "Alice" एक साथ sort हों), A to Z click करें. Output spreadsheet में वापस copy करने या email की BCC line में paste करने के लिए तैयार है. Trim Whitespace उन भटकती हुई spaces को पकड़ता है जो copy-paste artifacts से आती हैं.
Log entries को deduplicate करना
आपने एक server log से 5,000 error messages export किए और आप अलग-अलग वालों को जानना चाहते हैं. Paste करें, Remove duplicates tick करें, A to Z click करें. Output count आपको बताता है कितने unique errors मौजूद हैं. यदि log lines में परिवर्तनशील indentation है तो Trim Whitespace के साथ मिलाएँ.
एक lottery या raffle के लिए नाम निकालना
प्रतियोगियों के नाम paste करें, एक per line. Shuffle click करें. Output की पहली line आपका विजेता है, दूसरी runner-up है, और इसी तरह आगे. Fisher-Yates implementation Math.random का उपयोग करता है, जो सांख्यिकीय रूप से एकसमान है लेकिन cryptographically सुरक्षित नहीं. कानूनी निहितार्थ वाले prize draws के लिए, एक CSPRNG का उपयोग करके shuffle को एक server पर चलाएँ.
Ek CSV column taiyaar karna
जब एक CSV file के एक column में unsorted product SKUs या customer IDs होते हैं, column को एक text editor में copy करें, यहाँ paste करें, संख्यात्मक रूप से sort करें, और वापस paste करें. Numeric mode "9", "10", "100" जैसे SKUs को सही ढंग से संभालता है (lexicographic उन्हें 10, 100, 9 के रूप में क्रमबद्ध करेगा, जो शायद ही कभी वह होता है जो आप चाहते हैं).
दो lists को गायब items के लिए compare करना
दोनों lists को समान options के साथ sort करें (A to Z, Case insensitive, Trim Whitespace). उन्हें एक diff tool में side-by-side paste करें. वे items जो एक list में दिखते हैं लेकिन दूसरी में नहीं, स्पष्ट हो जाते हैं. यह unsorted lists को मैन्युअल रूप से scan करने से तेज़ है और तब भी काम करता है जब दोनों lists में हज़ारों entries हों.
एक backlog या todo list sort करना
जब आप एक plain text editor में एक todo list लिखते हैं और उसे वापस प्राथमिकता या वर्णानुक्रम में चाहते हैं, sorter में paste करें. Multi-step tasks को top पर लाने के लिए Longest First का उपयोग करें, या पहले आसान जीतों को साफ करने के लिए Shortest First का. Reverse Order तब उपयोगी है जब मूल list पहले से sorted थी लेकिन गलत दिशा में.
Aam khataarey
Lexicographic बनाम numeric sort
डिफ़ॉल्ट A-to-Z sorts strings को character by character compare करते हैं, इसलिए "10" "9" से पहले आता है क्योंकि ASCII में "1" "9" से पहले आता है. Numeric data के लिए, इसके बजाय Numeric mode का उपयोग करें. Mixed alphanumeric data जैसे "file2.txt" बनाम "file10.txt" (natural sort) के लिए, यह tool natural sort का सीधे समर्थन नहीं करता. आप sort करने से पहले numbers को zero-padding करके इसे fake कर सकते हैं.
Case sensitivity डिफ़ॉल्ट रूप से on है
डिफ़ॉल्ट रूप से sort case-sensitive है: "Apple" "apple" से पहले sort होता है क्योंकि ASCII में uppercase A (65) lowercase a (97) से पहले आता है. यदि आप case-insensitive sort चाहते हैं (capitalization की परवाह किए बिना वर्णानुक्रम), Sort Lines click करने से पहले Case insensitive checkbox tick करें.
Trailing whitespace dedup को तोड़ती है
"apple" और "apple " (trailing space के साथ) अलग strings हैं, इसलिए dedup दोनों को रखता है. Paste किए गए data के साथ काम करते समय हमेशा Remove Duplicates के साथ Trim Whitespace tick करें, अन्यथा dedup count उन चीज़ों से बढ़ा हुआ होगा जो समान lines दिखती हैं.
Locale-aware sorting समर्थित नहीं है
यह tool डिफ़ॉल्ट Unicode code-point ordering का उपयोग करता है, जो English और कई European भाषाओं के लिए सही है लेकिन जर्मन (ä, ö, ü), Swedish (å, ä, ö), Spanish (ñ), या किसी भी collation rules वाली script के लिए नहीं. Locale-सही sorting के लिए, एक spreadsheet या Intl.Collator समर्थन वाली programming language का उपयोग करें.
Stable sort 2019 से गारंटीकृत है
Array.prototype.sort Chrome 70 (2018) और Firefox 65 (2019) से शुरू होकर सभी major browsers में stable बन गया. उससे पहले, समान elements अप्रत्याशित रूप से reorder हो सकते थे, जिसने किसी भी workflow को तोड़ दिया जो insertion order पर निर्भर करता था. यह tool आधुनिक stable गारंटी पर निर्भर करता है, इसलिए समान lines अपनी मूल सापेक्ष क्रम में रहती हैं.
Unicode normalization समानता को प्रभावित करती है
Character é को एक single code point (U+00E9) के रूप में या e plus combining acute accent (U+0065 U+0301) के रूप में encode किया जा सकता है. वे समान दिखते हैं लेकिन अलग byte sequences हैं, इसलिए dedup उन्हें मेल नहीं करेगा. यदि आपका data दोनों forms मिलाता है, पहले एक programming language में NFC के साथ normalize करें, या यह उम्मीद रखें कि duplicates dedup pass से बच जाएँगे.
Gopniyata aur data handling
हर line जो आप paste करते हैं, आपके browser में एक छोटे JavaScript function द्वारा sort होती है. आपके device से कोई data बाहर नहीं जाता. हम inputs log नहीं करते, outputs store नहीं करते, text content से जुड़ा analytics नहीं चलाते, या third-party SDKs load नहीं करते जो textareas पढ़ सकते हैं. Copy Result और Download .txt buttons standard user-gesture APIs (Clipboard API और <a download> trick) के माध्यम से आपके operating system के साथ interact करते हैं और किसी बाहरी पक्ष को दिखाई नहीं देते.
Page load होने के बाद, tool offline काम करता है. आप network से disconnect कर सकते हैं, एक private window में खोल सकते हैं, एक corporate sandbox के अंदर चला सकते हैं, या एक flight पर airplane mode का उपयोग कर सकते हैं, और sort फिर भी पूरा होगा. यह tool को गोपनीय client lists, internal SKUs, और किसी भी data के लिए सुरक्षित बनाता है जिसे कभी third-party server को नहीं छूना चाहिए.
Line sorter कब उपयोग नहीं करना चाहिए
सम्बंधित cells वाले एक spreadsheet column को sort करना
यदि column A में नाम हैं और column B में मिलते-जुलते email addresses हैं, केवल column A यहाँ copy करना और sort करना row सम्बंध को बेमेल कर देगा. Spreadsheet की built-in sort का उपयोग करें जो पूरी rows को एक साथ स्थानांतरित करती है. Line sorting standalone, row-independent text के लिए है.
बहुत बड़े datasets (लाखों lines)
Tool पूरी input और output को memory में रखता है और synchronously चलता है, जो multi-million-line inputs पर browser tab को freeze कर सकता है. उस आकार के datasets के लिए, एक command-line sort (Unix sort, sort -u, sort -n) का उपयोग करें जो external merge sort के माध्यम से मनमाने ढंग से बड़ी files को संभालता है.
Real-time streaming data
यदि हर second नई lines आती हैं (जैसे एक live log feed या websocket stream), यह tool keep up नहीं कर सकता. यह static text की batch processing के लिए design किया गया है. Streaming sort के लिए sorted index वाले एक database का उपयोग करें, या priority queue वाली programming language.
Structured data (JSON, quoting वाला CSV)
JSON arrays, quoted fields के अंदर embedded commas वाली CSV files, या XML elements plain text के रूप में sort करना सुरक्षित नहीं है क्योंकि उनके delimiters multiple lines में फैलते हैं. Structured-data sorting के लिए एक JSON-aware sorter, एक CSV parser, या jq का उपयोग करें.
Aur sawaal
Tool कौन सा sort algorithm उपयोग करता है?
Tool browser के built-in Array.prototype.sort का उपयोग करता है, जो V8 (Chrome, Edge, Node.js 2018 से) में TimSort है और SpiderMonkey (Firefox) में एक custom merge sort है. दोनों stable हैं, worst case O(n log n), और आंशिक रूप से sorted वास्तविक data के लिए optimized हैं. आप एक custom JavaScript implementation के साथ उन्हें लगभग निश्चित रूप से नहीं हरा सकते.
क्या मैं locale (जर्मन, Swedish, Chinese) के अनुसार sort कर सकता हूँ?
इस tool में नहीं. हम डिफ़ॉल्ट Unicode code-point ordering का उपयोग करते हैं. Locale-aware sorting के लिए (Swedish å z के बाद, जर्मन ß ss के रूप में, Spanish ñ n के बाद), locale settings वाले एक spreadsheet का उपयोग करें, या एक custom script में JavaScript का Intl.Collator. Tool English-डिफ़ॉल्ट workflows के लिए अभिप्रेत है.
Shuffle option वास्तव में कितना random है?
Shuffle Fisher-Yates algorithm (Knuth 3.4.2) का उपयोग entropy source के रूप में Math.random के साथ करता है. आधुनिक browsers में Math.random xorshift128+ का उपयोग करता है (Chrome 2015 से), जो सांख्यिकीय रूप से एकसमान है और randomness tests पास करता है, लेकिन यह cryptographically सुरक्षित नहीं है. Prize draws या कानूनी भार वाली किसी भी चीज़ के लिए, crypto.getRandomValues या server-side CSPRNG का उपयोग करें.
क्या lines की कोई अधिकतम संख्या है?
कोई कठोर सीमा नहीं. Tool एक mid-range laptop पर 100,000 lines को आराम से संभालता है. 1 million lines पर, browser sort करते समय एक से तीन second के विराम की उम्मीद करें. उससे ऊपर, textarea खुद bottleneck बन जाती है, और tool tab को संक्षेप में hang कर सकता है. बहुत बड़े datasets के लिए एक command-line tool का उपयोग करें.
मेरा numeric sort "1.5" को "1" और "2" के बीच क्यों रखता है?
Numeric sort parseFloat का उपयोग करके प्रमुख number parse करता है, जो decimal points (1.5), scientific notation (1e3), negatives (-5), और digits के बाद नज़रअंदाज़ की गई trailing units को पहचानता है. यदि परिणाम number नहीं है, line अंत में चली जाती है. यह व्यवहार अधिकांश user अपेक्षाओं से मेल खाता है लेकिन आपको mixed integer-and-decimal lists के साथ आश्चर्यचकित कर सकता है.
क्या sort मेरी मूल input को संशोधित करेगा?
नहीं. Input textarea अछूती रहती है. Sorted output एक अलग read-only textarea में दिखता है. आप मूल को खोए बिना अलग-अलग modes या options के साथ समान input को कई बार sort कर सकते हैं. Clear button input को मिटाने का एकमात्र तरीका है, और यह पुष्टि नहीं माँगता, इसलिए इसे जानबूझकर उपयोग करें.