2010-11-03 16 views
10

मैंने एक बिल्ड स्क्रिप्ट लिखी और इसे स्थापित करते समय स्क्रिप्ट के नवीनतम संस्करण का चयन करने में सक्षम होना चाहते हैं, उदा। पैकेज का नाम package_X.X.X.tar.gz है और कई प्रतियां हैं।मैं उच्चतम संस्करण संख्या के साथ फ़ाइल नाम का चयन कैसे कर सकता हूं?

क्या build कमांड को package_Y.tar.gz पर इंगित करने का कोई तरीका है? जहां वाई = अधिकतम (एक्स.एक्स.एक्स)?

+1

आप संस्करण जानकारी निकालने के लिए regexp का उपयोग कर सकते हैं, लेकिन मुझे नहीं लगता कि आप केवल reg के साथ प्राप्त करने में सक्षम होंगे यहाँ विस्तार करें। – Kendrick

उत्तर

18

फ़ाइलें संस्करण संख्याओं के अलावा समान हैं, तो आप ls का आदमी पृष्ठ से की तरह

ls -v | tail -n 1 

कुछ इस्तेमाल कर सकते हैं:

... 
-v  natural sort of (version) numbers within text 
... 

उदाहरण उपयोग:

$ ls 
package_1.5.7.9.tar.gz package_2.5.3.9.tar.gz package_4.6.1.0.tar.gz 
$ ls -v | tail -n 1 
package_4.6.1.0.tar.gz 
+0

ध्यान रखें कि यह केवल तभी काम करता है जब संस्करण संख्या से पहले उपसर्ग समान हैं। –

+0

धन्यवाद, बाहरी फ़ाइलों को निकालने के लिए मैं उपयोग करूंगा: ls -v package * tar.gz | tail -n 1 –

+0

आह, यह स्मार्ट – aioobe

संबंधित मुद्दे

 संबंधित मुद्दे