2012-11-14 11 views
15

बैश रेंज के लिए अग्रणी शून्य कैसे जोड़ें?
उदाहरण के लिए, मुझे चक्र 01,02,03, .., 2 9, 30
मैं बैश का उपयोग करके इसे कैसे कार्यान्वित कर सकता हूं?बश में अग्रणी शून्य के साथ रेंज

+0

[संभवतः बैच में शून्य पैडिंग] के संभावित डुप्लिकेट (http://stackoverflow.com/ प्रश्न/8789729/शून्य गद्दी-इन-बैश) –

उत्तर

16

एक और seq चाल काम करेगा:

seq -w 30 

अगर आप आदमी पृष्ठ की जाँच, आप डब्ल्यू विकल्प आपकी आवश्यकता के लिए वास्तव में देखेंगे:

-w, --equal-width 
       equalize width by padding with leading zeroes 
5

आप seq के प्रारूप विकल्प का उपयोग कर सकते हैं:

echo {0..2}{0..9} 

इस दे देंगे:

seq -f "%02g" 30 
3

एक "शुद्ध बैश" जिस तरह से कुछ इस तरह होगा आप निम्नलिखित हैं:

00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 

पहले 00 को हटाने और अंतिम 30 जोड़ना बहुत कठिन नहीं है!

15

बैश के हाल के संस्करणों में आप कर सकते हैं:

echo {01..30} 

आउटपुट:

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 

या अगर यह होना चाहिए अल्पविराम से अलग:

echo {01..30} | tr ' ' ',' 

कौन सा भी साथ पूरा किया जा सकता parameter expansion:

a=$(echo {01..30}) 
echo ${a// /,} 

आउटपुट:

01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 
संबंधित मुद्दे