उबंटू में स्तंभ के आधार पर छाँटने के लिए पाइप के माध्यम से सॉर्ट कैसे करें?


6

मैं एक लिनक्स नौसिखिया हूँ जो सीखने की कोशिश कर रहा है कि उबंटू टर्मिनल में पाइपिंग कैसे काम करती है। मैंने फ़ाइल आकार के आधार पर छाँटने की कोशिश की:

ls -al | sort -k5

इस क्रम में फ़ाइलें सूचीबद्ध थीं:

drwx------ 19 min10 domain users      0 2010-10-07 12:38 .
drwx------ 29 min10 domain users      0 2010-02-16 22:30 MSI
drwx------  2 min10 domain users      0 2009-11-25 19:53 www
drwx------  2 min10 domain users      0 2010-02-05 09:14 .cache
drwx------  2 min10 domain users      0 2010-03-02 08:11 My Pictures
drwx------  2 min10 domain users      0 2010-03-02 10:41 regu
drwx------  2 min10 domain users      0 2010-03-31 13:08 elec
drwx------  2 min10 domain users      0 2010-04-10 21:43 temp
drwx------  2 min10 domain users      0 2010-10-06 09:13 bubbla
drwx------  3 min10 domain users      0 2010-01-26 08:26 cfg
drwx------  3 min10 domain users      0 2010-03-30 15:34 data
drwx------  3 min10 domain users      0 2010-03-30 16:03 idv
drwx------  3 min10 domain users      0 2010-04-01 09:10 arduino-0018
drwx------  3 min10 domain users      0 2010-04-14 15:10 processing-1.1
drwx------  3 min10 domain users      0 2010-07-06 16:20 eclipse
drwx------  4 min10 domain users      0 2010-04-15 09:34 pryl
drwx------  4 min10 domain users      0 2010-07-06 16:30 dv2
-rwx------  1 min10 domain users    123 2010-10-07 12:38 starwars.txt
-rwx------  1 min10 domain users  16109 2010-10-06 07:01 .bash_history
-rwx------  1 min10 domain users 454656 2010-03-30 15:29 putty.exe
-rwx------  1 min10 domain users    504 2010-04-10 21:16 little.gif
-rwx------  1 min10 domain users  56682 2010-04-10 21:12 awesome.jpg
-rwx------  1 min10 domain users      7 2010-04-10 21:32 blah.txt

यह स्पष्ट रूप से फ़ाइल आकार के अनुसार छांटने के मामले में विफल है। मैंने इसके अलावा अन्य स्तंभों के एक समूह के साथ कोशिश की -k5, और बार-बार मैला हो जाता है, आदेश से बाहर, परिणाम। मैंने भी कोशिश की -nk5, और अभी भी नहीं गया। मैं क्या गलत कर रहा हूं?


ls -al | sort -k5मेरे लिए काम करता है, क्या आप ls -al
निफ़ल

ठीक है, मैंने आउटपुट पूरा किया। आपके प्रतिक्रिया के लिए धन्येवाद।
मिंडी

जवाबों:


8

आप जो आउटपुट दिखाते हैं, वह संख्यात्मक रूप से बजाय वर्णानुक्रम में क्रमबद्ध होता है। जोड़ने का प्रयास करें:

-n, --numeric-sort स्ट्रिंग संख्यात्मक मूल्य के अनुसार तुलना करें

संपादित करें: मैंने अभी देखा कि आपके आउटपुट में फ़ाइल का आकार कॉलम 6 वां है! क्या आपने कोशिश की है -nk6?

मेरी हार्डी हेरॉन पर परीक्षण, ये काम:

  • ls -al | sort -nk5
  • ls -al | sort -k5n
  • ls -al | sort -k5 -n
  • ls -al | sort -k5 --numeric-sort

sort --version पैदावार: 6.10


धन्यवाद, मार्टिन। यह है कि मैं पहले से ही कोशिश की -nk5 से अलग है? मैंने सिर्फ कमांड में अलग-अलग जगहों पर डालने की कोशिश की, लेकिन इससे कोई फर्क नहीं पड़ता।
मिंडी

@ मिंडी: कोई सुराग क्यों-तुम्हारे लिए काम नहीं करेगा। फिर से कोशिश करो -nk6 के साथ? :-)
मार्टिन

@ मर्टिन: आप sortअपने उदाहरण ( ls -al | -nk5, आदि) में चूक गए ।
cyrus

@ मर्टिन: इसके अलावा आखिरी काम नहीं करता है क्योंकि आप इसके लिए पैरामीटर निर्दिष्ट नहीं करते हैं k
cYrus

आह, आप सही थे। मैंने कोशिश की थी -n और मैंने -k6 की कोशिश की थी, लेकिन मैंने उन दोनों को एक साथ करने की कोशिश नहीं की थी। अब यह काम कर रहा है। मैं उलझन में हूं कि यह छठा स्तंभ क्यों है, हालांकि। मैं पाँच गिन रहा हूँ। 1) अनुमतियाँ 2) कुछ संख्या 3) मालिक का नाम 4) समूह का नाम 5) फ़ाइल का आकार
माइंड

4

आकार के अनुसार 'ls -S' या 'ls -rS' आज़माएँ।


धन्यवाद, लेकिन जब से मैंने निर्दिष्ट किया कि मेरा लक्ष्य पाइपिंग सीखना है, तो यह सवाल का जवाब नहीं देता है।
दिमागदार
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.