Bu kadar basit.
(Deneme)
for i in * ; do mv -- "$i" "${i:0:5}" ; done
Voila.
Ve Gelişmiş Bash-Scripting Kılavuzu'ndan bir açıklama ( Bölüm 10. Değişkenleri Değiştirme ) , ( NOTEbu kılavuzdaki hataları vurgulamak için ek satır içi):
Substring Çıkarma
${string:position}
Dan alt dize ayıklar $string
de $position
.
Eğer $string
parametre "*" veya "@", o zaman bu ekstreler konumsal parametreler başlayan $position
.
${string:position:length}
Özler $length
gelen alt dize karakterler $string
de $position
.
NOTEparametre genişletmelerinde eksik tırnaklar! echo
rastgele veriler için kullanılmamalıdır.
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.
Konum ve uzunluğu argümanlar yerine sayısal bir sabit olarak değil, bir değişken olarak, o "parametreli" temsil edilebilir.
Eğer $string
parametre "*" veya "@" dir, o zaman bu ekstreler maksimum $length
konumsal parametreler başlayan $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
bir GNU oluşumudur.
expr substr $string $position $length
Konumunda başlayan $length
karakterleri ayıklar .$string
$position
stringZ=abcABC123ABCabc
# 123456789......
# 1-based indexing.
echo `expr substr $stringZ 1 2` # ab
echo `expr substr $stringZ 4 3` # ABC
NOTE: Bu echo
gereksizdir ve daha az güvenilir olmasını sağlar. Kullanın expr substr + "$string1" 1 2
.
NOTE: expr
çıkış 0 ise (veya -0, 00 ...) sıfır dışında bir çıkış durumuyla döner.
BTW. Kitap, resmi Ubuntu deposunda olduğu gibi abs-guide
.
bash
Birsh
çözüm istiyorsanız neden etiket ?