So einfach ist das.
(Bash)
for i in * ; do mv -- "$i" "${i:0:5}" ; done
Voila.
Und eine Erklärung aus dem Advanced Bash-Scripting Guide ( Kapitel 10. Manipulieren von Variablen ) (mit zusätzlichen NOTEs inline, um die Fehler in diesem Handbuch hervorzuheben):
Teilstrangextraktion
${string:position}
Extrahiert einen Teilstring aus $string
at $position
.
Wenn der $string
Parameter "*" oder "@" ist, werden die Positionsparameter extrahiert, beginnend mit $position
.
${string:position:length}
Extrahiert $length
Zeichen des Teilstrings aus $string
at $position
.
NOTEfehlende Anführungszeichen um Parametererweiterungen! echo
sollte nicht für beliebige Daten verwendet werden.
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.
Die Position und Länge Argumente können „parametrisiert“ sein , die, dargestellt als eine Variable, und nicht als eine numerische Konstante ist .
Wenn der $string
Parameter "*" oder "@" ist, extrahiert dies ein Maximum von $length
Positionsparametern, beginnend mit $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
ist eine GNU-Erweiterung.
expr substr $string $position $length
Extrahiert $length
Zeichen $string
ab $position
.
stringZ=abcABC123ABCabc
# 123456789......
# 1-based indexing.
echo `expr substr $stringZ 1 2` # ab
echo `expr substr $stringZ 4 3` # ABC
NOTE: Das echo
ist überflüssig und macht es noch weniger zuverlässig. Verwenden Sie expr substr + "$string1" 1 2
.
NOTE: expr
wird mit einem Ausgangsstatus ungleich Null zurückgegeben, wenn der Ausgang 0 (oder -0, 00 ...) ist.
Übrigens. Das Buch ist im offiziellen Ubuntu-Repository als vorhanden abs-guide
.
bash
Tag, wenn Sie nach einersh
Lösung fragen ?