Скрипт Bash для циклического перебора имени файла для удаления по указанному индексу - PullRequest
0 голосов
/ 01 января 2012

У меня есть тонна файлов с такими именами:

nn - xxxxxxxxxxxxxx-OOO.ext

Где nn - это всегда двузначное число, а xxxxx - переменная длина текста.(Суффикс -OOO является статическим для всех файлов).Что должно быть в цикле для переименования файлов:

xxxxxxxxxxxxxx.ext

Таким образом удаляются nn - (всегда первые 5 символов) и -OOO.

Ответы [ 2 ]

1 голос
/ 01 января 2012

Это можно сделать с помощью двух операций с подстрокой:

$ name="nn - xxxx x xx xx xxxxx-OOO.ext"
$ part1=${name:5}                   # substring starting at position 5
$ part2=${part1%-OOO.ext}           # remove `-OOO.ext` at the end of $part1
$ final="$part2".ext
$ echo $final
xxxx x xx xx xxxxx.ext
$ mv "$name" "$final"
0 голосов
/ 01 января 2012

echo $file_name | sed "s/.*-\s*\(.*\)-.*/\1.ext/" даст вам «xxxxxxx.ext», как вы просили в OP.

...