इस के रूप में सरल।
(दे घुमा के)
for i in * ; do mv -- "$i" "${i:0:5}" ; done
देखा।
और एडवांस्ड बैश-स्क्रिप्टिंग गाइड ( अध्याय 10। हेरफेर करने वाले वेरिएबल्स ) से एक स्पष्टीकरण , ( NOTEउस मैनुअल में त्रुटियों को उजागर करने के लिए अतिरिक्त इनलाइन के साथ ):
पदार्थ निकालना
${string:position}
अर्क से सबस्ट्रिंग $string
पर $position
।
यदि $string
पैरामीटर "*" या "@" है, तो यह शुरू होने पर स्थितीय मापदंडों को निकालता है $position
।
${string:position:length}
अर्क $length
से सबस्ट्रिंग के पात्रों $string
पर $position
।
NOTEपैरामीटर विस्तार के आसपास लापता उद्धरण! echo
मनमाना डेटा के लिए उपयोग नहीं किया जाना चाहिए।
stringZ=abcABC123ABCabc
# 0123456789.....
# 0-based indexing.
echo ${stringZ:0} # abcABC123ABCabc
echo ${stringZ:1} # bcABC123ABCabc
echo ${stringZ:7} # 23ABCabc
echo ${stringZ:7:3} # 23A
# Three characters of substring.
# Is it possible to index from the right end of the string?
echo ${stringZ:-4} # abcABC123ABCabc
# Defaults to full string, as in ${parameter:-default}.
# However . . .
echo ${stringZ:(-4)} # Cabc
echo ${stringZ: -4} # Cabc
# Now, it works.
# Parentheses or added space "escape" the position parameter.
स्थिति और लंबाई तर्क "parameterized," किया जा सकता है यह है कि, का प्रतिनिधित्व एक चर के रूप में, बल्कि एक संख्यात्मक निरंतर रूप से।
यदि $string
पैरामीटर "*" या "@" है, तो यह $length
शुरू होने पर अधिकतम स्थितीय पैरामीटर निकालता है $position
।
echo ${*:2} # Echoes second and following positional parameters.
echo ${@:2} # Same as above.
echo ${*:2:3} # Echoes three positional parameters, starting at second.
NOTE: expr substr
एक GNU एक्सटेंशन है।
expr substr $string $position $length
शुरू $length
से ही पात्रों को निकालता है ।$string
$position
stringZ=abcABC123ABCabc
# 123456789......
# 1-based indexing.
echo `expr substr $stringZ 1 2` # ab
echo `expr substr $stringZ 4 3` # ABC
NOTE: यह echo
बेमानी है और इसे और भी कम विश्वसनीय बनाता है। का उपयोग करें expr substr + "$string1" 1 2
।
NOTE: expr
यदि आउटपुट 0 (या -0, 00 ...) है तो एक गैर-शून्य निकास स्थिति के साथ वापस आ जाएगा।
Btw। पुस्तक आधिकारिक उबंटू भंडार में मौजूद है abs-guide
।
bash
यदि आप कोईsh
समाधान पूछ रहे हैं तो टैग क्यों ?