मैं फ़ाइल नाम क्रम में एक साथ फ़ाइलों का एक गुच्छा समवर्ती करना चाहता हूँ।
क्या यह मान लेना सुरक्षित है कि यह मुझे अल्फ़ान्यूमेरिक क्रम में देगा?
cat *
यानी वही आदेश जो ls
देता है।
मैं फ़ाइल नाम क्रम में एक साथ फ़ाइलों का एक गुच्छा समवर्ती करना चाहता हूँ।
क्या यह मान लेना सुरक्षित है कि यह मुझे अल्फ़ान्यूमेरिक क्रम में देगा?
cat *
यानी वही आदेश जो ls
देता है।
जवाबों:
संक्षिप्त उत्तर: हाँ यह होगा।
से बैश आदमी पेज:
शब्द बंटवारे के बाद, जब तक -f विकल्प सेट नहीं किया गया हो (द सेट बिल्ड देखें), बैश प्रत्येक शब्द को '*', '?' और '[' अक्षर के लिए स्कैन करता है। यदि इनमें से एक अक्षर दिखाई देता है, तो शब्द को एक पैटर्न के रूप में माना जाता है, और पैटर्न से मेल खाने वाले फ़ाइल नामों की वर्णानुक्रमिक रूप से क्रमबद्ध सूची के साथ प्रतिस्थापित किया जाता है।
ls
ही प्रणाली के रूप में एक ही उत्पादन में परिणाम होगा।
संक्षिप्त उत्तर हाँ है, लेकिन आपको इस बारे में जागरूक होने की आवश्यकता है कि यह क्या सोचता है कि अल्फ़ान्यूमेरिक क्रम होना चाहिए, क्योंकि यह आपके मन में आने वाले प्राकृतिक क्रम के अनुरूप नहीं हो सकता है।
उदाहरण के लिए, अपने सिस्टम पर पता लगाने के लिए ऊपरी और निचले मामले को कैसे संभाला जाए, साथ ही संख्याओं के अनुक्रम पर कुछ परीक्षण चलाएं।
एक सामान्य समस्या जो मैंने एक ग्लोब द्वारा लौटाई गई फाइलों की क्रमबद्ध फाइलों में क्रमांकित फाइलों में दर्ज की है। मुझे अक्सर ऐसी फाइलें दी जाती हैं, जैसे:
blah_1.txt
blah_2.txt
...
blah_10.txt
blah_11.txt
हालाँकि, इस प्रयोग से एक ग्लोब *
उन्हें इस क्रम में वापस नहीं करेगा, इसके बदले आपको कुछ मिलेगा:
blah_1.txt
blah_10.txt
blah_11.txt
...
blah_2.txt
blah_20.txt
...
तो - इस समस्या को आप करेंगे फ़ाइलें, या तो यह है कि एकल अंक नाम बदलने फ़ाइलों के लिए लौट आए सूची पर कुछ हेरफेर करने के लिए या तो की जरूरत (यानी शून्य अग्रणी है से बचने के लिए blah_01.txt
, blah_02.txt
, आदि)।
$LC_COLLATE
) के आधार पर भिन्न होती है ।