Aussi simple que cela.
(frapper)
for i in * ; do mv -- "$i" "${i:0:5}" ; done
Voila.
Et une explication du Guide de Bash-Scripting Avancé ( Chapitre 10. Manipulation des Variables ) , (avec des NOTEs supplémentaires en ligne pour mettre en évidence les erreurs dans ce manuel):
Extraction de sous-chaîne
${string:position}
Extrait la sous-chaîne de $string
at $position
.
Si le $string
paramètre est "*" ou "@", cela extrait les paramètres de position en commençant à $position
.
${string:position:length}
Extrait les $length
caractères de la sous-chaîne de $string
at $position
.
NOTEcitations manquantes autour des extensions de paramètres! echo
ne doit pas être utilisé pour des données arbitraires.
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.
Les arguments de position et de longueur peuvent être "paramétrés", c'est-à-dire représentés comme une variable plutôt que comme une constante numérique.
Si le $string
paramètre est "*" ou "@", cela extrait un maximum de $length
paramètres de position, à partir de $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
est une extension GNU.
expr substr $string $position $length
Extrait les $length
caractères à $string
partir de $position
.
stringZ=abcABC123ABCabc
# 123456789......
# 1-based indexing.
echo `expr substr $stringZ 1 2` # ab
echo `expr substr $stringZ 4 3` # ABC
NOTE: C'est echo
redondant et le rend encore moins fiable. Utilisez expr substr + "$string1" 1 2
.
NOTE: expr
retournera avec un état de sortie non nul si la sortie est 0 (ou -0, 00 ...).
BTW. Le livre est présent dans le référentiel officiel Ubuntu en tant que abs-guide
.
bash
tag si vous demandez unesh
solution?