`ASSII कोडों के आधार पर क्रमबद्ध करने के लिए` ls` बताएं, न कि “समझदारी” से


13

मेरे पास एक जोड़ी फाइलें हैं और lsउन्हें इस तरह से हल करता हूं :

a
_b
c

लेकिन मेरे पास है

_b
a
c

मैं उसे कैसे कर सकता हूँ?


2
शायद मैं पूछूं कि क्यों?
RolandiXor

2
मैं विशेष निर्देशिकाओं को दर्शाने के लिए अंडरस्कोर का उपयोग करता हूं जिन्हें शीर्ष पर जाने की आवश्यकता होती है। मेरे प्रोजेक्ट फ़ोल्डर में, मेरे पास proj_a, proj_b और _old_projects हैं। यदि यह फ़ोल्डर ओ-प्रोजेक्ट्स के भीतर है तो इसका कोई उपयोग नहीं है।
मार्टिन उडिंग

जवाबों:


9

एक-बंद आदेश के रूप में आप यह कर सकते हैं:

LC_COLLATE=C ls

या आप export LC_COLLATE="C"इसे स्थायी बनाने के लिए अपने .bashrc में जोड़ सकते हैं (अप्रत्याशित परिणाम कहीं और छांट सकते हैं)।

उबंटू मंचों पर अधिक जानकारी ।


1
मुझे लगता है कि मैं इसके साथ सिर्फ उर्फ ​​एलएस करूंगा, ताकि इसके दुष्प्रभाव न हों।
मार्टिन उडिंग

यह मेरे लिए काम नहीं करता है। मुझे यह मिलता है -> paste.pocoo.org/show/403333 (यह जर्मन है लेकिन यह बात नहीं होनी चाहिए)
dAnjou

2
@dAnjou LC_COLLATE=Cls पारंपरिक POSIX सॉर्टिंग क्रम सेट करता है, जो ASCII द्वारा है जिसमें अपरकेस पहले अंडरस्कोर से आता है। अपरकेस से पहले अंडरस्कोर सॉर्ट करने के लिए आपको बोनट के नीचे जाना होगा और / usr / शेयर / i18n / स्थानों के तहत एक कस्टम लोकेल परिभाषा बनानी होगी।
मिस्टरबैन

2
यह अतीत में काम कर सकता है, लेकिन यह उबंटू 12.04 पर काम नहीं कर रहा है।
मिकेल

1
Ubuntu 14.04 के रूप में, LC_COLLATE=C lsकाम नहीं करता है, लेकिन LC_ALL=C lsकरता है।
jwodder

6

यदि ऐसा करने का कोई अंतर्निहित तरीका नहीं है, तो आप इसके लिए एक साधारण प्रतिस्थापन का उपयोग कर सकते हैं sort:

#!/usr/bin/env python

import sys

for i in sorted(sys.stdin):
    sys.stdout.write(i)

इसे सहेजें, उदाहरण के लिए, /bin/pysortइसे निष्पादन योग्य ( sudo cp whatever.py /bin/pysortऔर sudo chmod a+x /bin/pysort) बनाएं , और इसे इस रूप में चलाएं ls | pysort:

stefano@lenovo:~/t$ ls | pysort
_b
a
c

1
मैं शायद यह है ~/binलेकिन अच्छा कमबैक में डाल देंगे । यह संभव है कि अजगर के भीतर ग्लोबिंग का उपयोग करें क्योंकि एलएस का उत्पादन अजीब हो सकता है अगर फ़ाइल नाम में एक नई रेखा होती है।
मार्टिन उडिंग

1

ls | sortठीक वैसा नहीं होगा जैसा आपको चाहिए?


1
नहीं, कि "के रूप में एक _b ग" यह सॉर्ट करता
Stefano Palazzo

1
नहीं! और सॉर्ट को इसके लिए एक विकल्प भी नहीं मिला है :-)
Rinzwind

2
यह अजीब है कि इस तरह के कई विशेष छंटाई के तरीके हैं, लेकिन "एएससीआईआई मूल्य का उपयोग न करें" एक ...
मार्टिन उडिंग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.