Simples assim.
(bater)
for i in * ; do mv -- "$i" "${i:0:5}" ; done
Voila.
E uma explicação do Advanced Bash-Scripting Guide ( Capítulo 10. Manipulando Variáveis ) , (com NOTEs adicionais embutidos para destacar os erros nesse manual):
Extração de Substring
${string:position}
Extrai substring de $string
em $position
.
Se o $string
parâmetro for "*" ou "@", extrai os parâmetros posicionais, iniciando em $position
.
${string:position:length}
Extrai $length
caracteres de substring de $string
às $position
.
NOTEcotações ausentes em torno de expansões de parâmetros! echo
não deve ser usado para dados arbitrários.
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.
Os argumentos de posição e comprimento podem ser "parametrizados", isto é, representados como uma variável, e não como uma constante numérica.
Se o $string
parâmetro for "*" ou "@", extrai o máximo de $length
parâmetros posicionais, começando em $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
é uma extensão GNU.
expr substr $string $position $length
Extrai $length
caracteres a $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: Isso echo
é redundante e o torna ainda menos confiável. Use expr substr + "$string1" 1 2
.
NOTE: expr
retornará com um status de saída diferente de zero se a saída for 0 (ou -0, 00 ...).
Entre. O livro está presente no repositório oficial do Ubuntu como abs-guide
.
bash
tag se você está pedindo umash
solução?