सॉर्ट करें (यूनिक्स): Difference between revisions
Line 37: | Line 37: | ||
===पैरामीटर=== | ===पैरामीटर=== | ||
{| class="wikitable" border="6" | {| class="wikitable" border="6" | ||
! | ! नाम | ||
! | ! विवरण | ||
! [[ | ! [[यूनिक्स]] | ||
! [[ | ! [[बेल लैब्स से योजना 9|योजना 9]] | ||
! [[ | ! [[इन्फर्नो (ऑपरेटिंग सिस्टम)|इन्फर्नो]] | ||
! [[ | ! [[फ्रीबीएसडी]] | ||
! [[ | ! [[लिनक्स]] | ||
! [[ | ! [[एमएसएक्स-डॉस]] | ||
! [[ | ! [[आईबीएम आई]] | ||
|- | |- | ||
| '''- | | '''-बी''',<br />'''--अनदेखा-अग्रणी-रिक्त स्थान''' | ||
| | | प्रमुख रिक्त स्थानों पर ध्यान नहीं देता. | ||
| {{Yes}} | | {{Yes}} | ||
| {{Yes}} | | {{Yes}} | ||
Line 57: | Line 57: | ||
| {{Yes}} | | {{Yes}} | ||
|- | |- | ||
| '''- | | '''-सी''' | ||
| | | जांचें कि इनपुट फ़ाइल सॉर्टिड है। | ||
| {{No}} | | {{No}} | ||
| {{Yes}} | | {{Yes}} |
Revision as of 23:20, 7 August 2023
Original author(s) | Ken Thompson (AT&T Bell Laboratories) |
---|---|
Developer(s) | Various open-source and commercial developers |
Initial release | November 3, 1971 |
Written in | C |
Operating system | Multics, Unix, Unix-like, V, Plan 9, Inferno, MSX-DOS, IBM i |
Platform | Cross-platform |
Type | Command |
License | coreutils: GPLv3+ Plan 9: MIT License |
कम्प्यूटिंग में, सॉर्ट, यूनिक्स और यूनिक्स जैसे ऑपरेटिंग सिस्टम का एक स्टैन्डर्ड कमांड लाइन प्रोग्राम है, जो सॉर्टेड ऑर्डर में अपने कमांड-लाइन प्रोग्राम में सूचीबद्ध सभी कम्प्यूटर फाइल के इनपुट या कॉनकटेनेसन की पंक्तियों को प्रिंट करता है। इनपुट की प्रत्येक पंक्ति से निर्गत एक या अधिक 'सॉर्ट की' के आधार पर सॉर्टिंग की जाती है। डिफ़ॉल्ट रूप से, सभी इनपुट को 'सॉर्ट की' माना जाता है। ब्लैंक स्पेस, डिफ़ॉल्ट फ़ील्ड सेपरेटर है। कमांड कई कमांड-लाइन इंटरफ़ेस का समर्थन करता है जो कार्यान्वयन के अनुसार भिन्न हो सकते हैं। उदाहरण के लिए-r
फ़्लैग सॉर्ट ऑर्डर को उलट देगा।
इतिहास
sort
कमांड जो एक सामान्य सॉर्ट प्रक्रिया को चलाता है, पहली बार मॉलटिक्स में लागू किया गया था।[1] बाद में, यह संस्करण 1 यूनिक्स में दिखाई दिया। यह संस्करण मूल रूप से एटी एंड टी बेल लेबोरेटरीज में केन थॉम्पसन द्वारा लिखा गया था। संस्करण 4 तक यूनिक्स थॉम्पसन ने इसे यूनिक्स पाइपों का उपयोग करने के लिए संशोधित किया था, परंतु सॉर्ट ने आउटपुट फ़ाइल को नाम देने के लिए एक विकल्प बरकरार रखा क्योंकि इसका उपयोग किसी फ़ाइल को सॉर्ट करने के लिए किया गया था। संस्करण 5 यूनिक्स में, थॉम्पसन ने स्टैन्डर्ड इनपुट का प्रतिनिधित्व करने के लिए "-" का आविष्कार किया।[2]
sort का संस्करण, जीएनयू कोरुटिल्स बंडल, माइक हर्टेल और पॉल एगर्ट द्वारा लिखा गया था।[3] यह कार्यान्वयन मर्ज़ सॉर्ट एल्गोरिदम को नियोजित करता है।
इसी तरह के कमांड कई अन्य ऑपरेटिंग सिस्टम पर उपलब्ध हैं, उदाहरण के लिए sort कमांड एमएसएक्स-डॉस संस्करण 2 के लिए एएससीआईआई कॉर्पोरेसन के एमएसएक्स-डॉस 2 टूल्स का भाग है।[4]
sort कमांड को आईबीएम आइ ऑपरेटिंग सिस्टम में भी पोर्ट किया गया है।[5]
सिन्टैक्स
sort [OPTION]... [FILE]...
जब FILE
नहीं होता है या FILE
को -
दिया जाता है, तो यह कमांड मानक इनपुट से रीड करता है।
पैरामीटर
नाम | विवरण | यूनिक्स | योजना 9 | इन्फर्नो | फ्रीबीएसडी | लिनक्स | एमएसएक्स-डॉस | आईबीएम आई |
---|---|---|---|---|---|---|---|---|
-बी, --अनदेखा-अग्रणी-रिक्त स्थान |
प्रमुख रिक्त स्थानों पर ध्यान नहीं देता. | Yes | Yes | No | Yes | Yes | No | Yes |
-सी | जांचें कि इनपुट फ़ाइल सॉर्टिड है। | No | Yes | No | Yes | Yes | No | Yes |
-C | Like -c, but does not report the first bad line. | No | No | No | Yes | Yes | No | No |
-d, --dictionary-order |
Considers only blanks and alphanumeric characters. | Yes | Yes | No | Yes | Yes | No | Yes |
-f, --ignore-case |
Fold lower case to upper case characters. | Yes | Yes | No | Yes | Yes | No | Yes |
-g, --general-numeric-sort, --sort=general-numeric |
Compares according to general numerical value. | Yes | Yes | No | Yes | Yes | No | No |
-h, --human-numeric-sort, --sort=human-numeric |
Compare human readable numbers (e.g., 2K 1G). | Yes | No | No | Yes | Yes | No | No |
-i, --ignore-nonprinting |
Considers only printable characters. | Yes | Yes | No | Yes | Yes | No | Yes |
-k, --key=POS1[,POS2] |
Start a key at POS1 (origin 1), end it at POS2 (default end of line) | No | No | No | Yes | Yes | No | No |
-m | Merge only; input files are assumed to be presorted. | No | Yes | No | Yes | Yes | No | Yes |
-M, --month-sort, --sort=month |
Compares (unknown) < 'JAN' < ... < 'DEC'. | Yes | Yes | No | Yes | Yes | No | No |
-n, --numeric-sort, --sort=numeric |
Compares according to string numerical value. | Yes | Yes | Yes | Yes | Yes | No | Yes |
-o OUTPUT | Uses OUTPUT file instead of standard output. | No | Yes | No | Yes | Yes | No | Yes |
-r, --reverse |
Reverses the result of comparisons. | Yes | Yes | Yes | Yes | Yes | No | Yes |
-R, --random-sort, --sort=random |
Shuffles, but groups identical keys. See also: shuf | Yes | No | No | Yes | Yes | No | No |
-s | Stabilizes sort by disabling last-resort comparison. | No | No | No | Yes | Yes | No | No |
-S size, --buffer-size=size |
Use size for the maximum size of the memory buffer. | No | No | No | Yes | No | No | No |
-tx | 'Tab character' separating fields is x. | No | Yes | No | No | Yes | No | Yes |
-t char, --field-separator=char |
Uses char instead of non-blank to blank transition. | No | No | No | Yes | Yes | No | No |
-T dir, --temporary-directory=dir |
Uses dir for temporaries. | No | Yes | No | Yes | Yes | No | No |
-u, --unique |
Unique processing to suppress all but one in each set of lines having equal keys. | No | Yes | No | Yes | Yes | No | Yes |
-V, --version-sort |
Natural sort of (version) numbers within text | No | No | No | Yes | Yes | No | No |
-w | Like -i, but ignore only tabs and spaces. | No | Yes | No | No | No | No | No |
-z, --zero-terminated |
End lines with 0 byte, not newline | No | No | No | Yes | Yes | No | No |
--help | Display help and exit | No | No | No | Yes | Yes | No | No |
--version | Output version information and exit | No | No | No | Yes | Yes | No | No |
/R | Reverses the result of comparisons. | No | No | No | No | No | Yes | No |
/S | Specify the number of digits to determine how many digits of each line should be judged. | No | No | No | No | No | Yes | No |
/A | Sort by ASCII code. | No | No | No | No | No | Yes | No |
/H | Include hidden files when using wild cards. | No | No | No | No | No | Yes | No |
उदाहरण
फ़ाइल को वर्णानुक्रम में क्रमबद्ध करें
$ cat phonebook
Smith, Brett 555-4321
Doe, John 555-1234
Doe, Jane 555-3214
Avery, Cory 555-4132
Fogarty, Suzie 555-2314
$ sort phonebook
Avery, Cory 555-4132
Doe, Jane 555-3214
Doe, John 555-1234
Fogarty, Suzie 555-2314
Smith, Brett 555-4321
===संख्या के अनुसार क्रमबद्ध करें=== -n
e> विकल्प प्रोग्राम को संख्यात्मक मान के अनुसार क्रमित करता है। du} कमांड आउटपुट उत्पन्न करता है जो एक संख्या, फ़ाइल आकार से शुरू होता है, इसलिए इसके आउटपुट को पाइप किया जा सकता है sort (आरोही) फ़ाइल आकार के अनुसार क्रमबद्ध फ़ाइलों की एक सूची तैयार करने के लिए:
$ du /bin/* | sort -n
4 /bin/domainname
24 /bin/ls
102 /bin/sh
304 /bin/csh
find} कमांड के साथ ls विकल्प 7वें फ़ील्ड में फ़ाइल आकार प्रिंट करता है, इसलिए इसकी एक सूची LaTeXफ़ाइल आकार के आधार पर क्रमबद्ध फ़ाइलें निम्न द्वारा उत्पादित की जाती हैं:
$ find . -name "*.tex" -ls | sort -k 7n
कॉलम या फ़ील्ड
उपयोग -k
एक निश्चित कॉलम पर सॉर्ट करने का विकल्प। उदाहरण के लिए, उपयोग करें-k 2
दूसरे कॉलम पर क्रमबद्ध करने के लिए. सॉर्ट के पुराने संस्करणों में, +1
विकल्प ने प्रोग्राम को डेटा के दूसरे कॉलम पर क्रमबद्ध कर दिया (+2
तीसरे के लिए, आदि)। यह प्रयोग अस्वीकृत है.
$ cat zipcode
Adam 12345
Bob 34567
Joe 56789
Sam 45678
Wendy 23456
$ sort -k 2n zipcode
Adam 12345
Wendy 23456
Bob 34567
Sam 45678
Joe 56789
===एकाधिक फ़ील्ड पर क्रमबद्ध करें=== -k m,n
ई> विकल्प आपको एक कुंजी को सॉर्ट करने देता है जो संभावित रूप से कई फ़ील्ड से बनी होती है (कॉलम से प्रारंभ करें)। m
, कॉलम पर समाप्त करें n
):
$ cat quota
fred 2000
bob 1000
an 1000
chad 1000
don 1500
eric 500
$ sort -k2,2n -k1,1 quota
eric 500
an 1000
bob 1000
chad 1000
don 1500
fred 2000
यहां पहला सॉर्ट कॉलम 2 का उपयोग करके किया जाता है। -k2,2n
कॉलम 2 से आरंभ और समाप्त होने वाली कुंजी को सॉर्ट करना और संख्यात्मक रूप से सॉर्ट करना निर्दिष्ट करता है। अगर -k2
इसके बजाय उपयोग किया जाता है, सॉर्ट कुंजी कॉलम 2 से शुरू होगी और पंक्ति के अंत तक विस्तारित होगी, बीच में सभी फ़ील्ड को फैलाते हुए। -k1,1
डिफ़ॉल्ट रूप से वर्णानुक्रम में क्रमबद्ध करते हुए, कॉलम 1 में मान का उपयोग करके संबंधों को तोड़ने का निर्देश देता है। ध्यान दें कि बॉब और चाड का कोटा समान है और अंतिम आउटपुट में वर्णानुक्रम में क्रमबद्ध हैं।
पाइप सीमांकित फ़ाइल को क्रमबद्ध करना
$ sort -k2,2,-k1,1 -t'|' zipcode
Adam|12345
Wendy|23456
Sam|45678
Joe|56789
Bob|34567
टैब सीमांकित फ़ाइल को क्रमित करना
टैब से अलग किए गए मानों के साथ किसी फ़ाइल को सॉर्ट करने के लिए कॉलम सीमांकक के रूप में एक टैब वर्ण निर्दिष्ट करने की आवश्यकता होती है। यह चित्रण शेल के डॉलर-उद्धरण संकेतन का उपयोग करता है[6][7] टैब को C में एस्केप अनुक्रम के रूप में निर्दिष्ट करने के लिए।
$ sort -k2,2 -t $'\t' phonebook
Doe, John 555-1234
Fogarty, Suzie 555-2314
Doe, Jane 555-3214
Avery, Cory 555-4132
Smith, Brett 555-4321
===उल्टा क्रमबद्ध करें=== -r
e> विकल्प सॉर्ट के क्रम को उलट देता है:
$ sort -rk 2n zipcode
Joe 56789
Sam 45678
Bob 34567
Wendy 23456
Adam 12345
यादृच्छिक क्रमबद्ध करें
जीएनयू कार्यान्वयन में एक है -R --random-sort
हैशिंग पर आधारित विकल्प; यह पूर्ण यादृच्छिक फेरबदल नहीं है क्योंकि यह समान पंक्तियों को एक साथ क्रमबद्ध करेगा। यूनिक्स उपयोगिता shuf द्वारा एक सच्चा यादृच्छिक सॉर्ट प्रदान किया जाता है।
संस्करण के अनुसार क्रमबद्ध करें
जीएनयू कार्यान्वयन में एक है -V --version-sort
विकल्प जो पाठ के भीतर संख्याओं का एक प्राकृतिक प्रकार है (संस्करण)। जिन दो टेक्स्ट स्ट्रिंग्स की तुलना की जानी है उन्हें अक्षरों के ब्लॉक और अंकों के ब्लॉक में विभाजित किया गया है। अक्षरों के ब्लॉक की तुलना अल्फ़ा-संख्यात्मक रूप से की जाती है, और अंकों के ब्लॉक की तुलना संख्यात्मक रूप से की जाती है (यानी, अग्रणी शून्य को छोड़कर, अधिक अंकों का मतलब बड़ा होता है, अन्यथा सबसे बाईं ओर के अंक जो भिन्न होते हैं वे परिणाम निर्धारित करते हैं)। ब्लॉक की तुलना बाएं से दाएं की जाती है और उस लूप में पहला गैर-बराबर ब्लॉक तय करता है कि कौन सा टेक्स्ट बड़ा है। यह आईपी पते, डेबियन पैकेज संस्करण स्ट्रिंग्स और इसी तरह के कार्यों के लिए काम करता है जहां चर लंबाई की संख्याएं स्ट्रिंग्स में एम्बेडेड होती हैं।
यह भी देखें
- संकलन
- अद्वितीय ्स कमांड की सूची
- यूनिक
- शुफ़
संदर्भ
- ↑ "मल्टिक्स कमांड". www.multicians.org.
- ↑ McIlroy, M. D. (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF) (Technical report). CSTR. Bell Labs. 139.
- ↑ "sort(1): sort lines of text files - Linux man page". linux.die.net.
- ↑ "MSX-DOS2 Tools User's Manual - MSX-DOS2 TOOLS ユーザーズマニュアル". April 1, 1993 – via Internet Archive.
- ↑ IBM. "IBM System i Version 7.2 Programming Qshell" (PDF) (in English). Retrieved 2020-09-05.
- ↑
"The GNU Bash Reference Manual, for Bash, Version 4.2: Section 3.1.2.4 ANSI-C Quoting". Free Software Foundation, Inc. 28 December 2010. Retrieved 1 February 2013.
Words of the form $'string' are treated specially. The word expands to string, with backslash-escaped characters replaced as specified by the ANSI C standard.
- ↑
Fowler, Glenn S.; Korn, David G.; Vo, Kiem-Phong. "KornShell FAQ". Archived from the original on 2013-05-27. Retrieved 3 March 2015.
The $'...' string literal syntax was added to ksh93 to solve the problem of entering special characters in scripts. It uses ANSI-C rules to translate the string between the '...'.
अग्रिम पठन
- Shotts (Jr), William E. (2012). The Linux Command Line: A Complete Introduction. No Starch Press. ISBN 978-1593273897.
- McElhearn, Kirk (2006). The Mac OS X Command Line: Unix Under the Hood. John Wiley & Sons. ISBN 978-0470113851.
बाहरी संबंध
- Original Sort manpage The original BSD Unix program's manpage
- Linux User Manual – User Commands –
- Plan 9 Programmer's Manual, Volume 1 –
- Inferno General commands Manual –
- Further details about sort at Softpanorama