मैं mv
'x' से डायरेक्टरी 'x' से शुरू होने वाली सभी फाइलों को चाहता हूँ ; कुछ इस तरह:
mv path1/x*.ext path2/x
और यह सभी वर्णमाला अक्षरों के लिए करते हैं a, ..., z
मैं एक बैश स्क्रिप्ट कैसे लिख सकता हूं जो वर्णमाला के माध्यम से 'x' लूप बनाती है?
मैं mv
'x' से डायरेक्टरी 'x' से शुरू होने वाली सभी फाइलों को चाहता हूँ ; कुछ इस तरह:
mv path1/x*.ext path2/x
और यह सभी वर्णमाला अक्षरों के लिए करते हैं a, ..., z
मैं एक बैश स्क्रिप्ट कैसे लिख सकता हूं जो वर्णमाला के माध्यम से 'x' लूप बनाती है?
जवाबों:
for x in {a..z}
do
echo "$x"
mkdir -p path2/${x}
mv path1/${x}*.ext path2/${x}
done
"$x"
यह पर्याप्त है और इसे बाहर खड़ा करने का एक बेहतर तरीका है।
नेस्टेड ब्रेस विस्तार का उपयोग करके स्पेनिश वर्णमाला उत्पन्न करने का तरीका यहां बताया गया है
for l in {{a..n},ñ,{o..z}}; do echo $l ; done | nl
1 a
...
14 n
15 ñ
16 o
...
27 z
या केवल
echo -e {{a..n},ñ,{o..z}}"\n" | nl
यदि आप अप्रचलित 29 वर्ण स्पेनिश वर्णमाला उत्पन्न करना चाहते हैं
echo -e {{a..c},ch,{d..l},ll,{m,n},ñ,{o..z}}"\n" | nl
फ्रेंच वर्णमाला या जर्मन वर्णमाला के लिए भी ऐसा ही किया जा सकता है।
इस सवाल और जवाब ने मेरी समस्या को आंशिक रूप से हल करने में मदद की।
मुझे बैश में वर्णमाला के एक भाग पर जोर लगाने की जरूरत थी ।
हालांकि विस्तार सख्ती से शाब्दिक है
मुझे एक समाधान मिला: और इसे और भी सरल बना दिया:
START=A
STOP=D
for letter in $(eval echo {$START..$STOP}); do
echo $letter
done
जिसके परिणामस्वरूप:
A
B
C
D
आशा है कि किसी को उसी समस्या की तलाश में मदद करने के लिए जो मुझे हल करना था, और यहाँ भी समाप्त होता है