У меня есть куча файлов x1.jpg, x2.jpg, x3.jpg и т.д., Которые должны называться x001.jpg, x002.jpg, x003.jpg и т.д. Как я могу это сделать?

Редактировать: я использую Windows, но у меня установлен Cygwin.

6 ответов6

1

Для массового переименования файлов изображений в Windows (а также изменения размера, обрезки, преобразования и т.д.) Я часто использую IrfanView (Freeware)

0

Сигвин, сладкий.

for NEWNUM in $(seq -w 1 100)
do
    OLDNUM=$(echo $NEWNUM | sed -e 's/^0*//')
    echo $OLDNUM $NEWNUM
    # mv x${OLDNUM}.jpg x${NEWNUM}.jpg
done

Это должно работать. Ну, кроме закомментированных мв. Флаг -w для seq означает «широкий», что означает, что начинать заполнять нулями следует при необходимости

0

Какая ОС? * nix имеет утилиту rename командной строки, которая, похоже, предназначена именно для такого рода вещей.

0

Многократное или массовое переименование можно назвать пакетным переименованием.

Total Commander - файловый менеджер. Он имеет функцию пакетного переименования. Вы можете увидеть учебник там или там.

Irfan View - это браузер / редактор изображений. Пакетное переименование тоже. Вы можете увидеть учебник там.

Я предпочитаю Total Commander. У него есть клоны Linux, и они, вероятно, тоже могут переименовывать файлы.

Обе эти программы для Windows. Оба должны работать в Linux тоже путем эмуляции.

0

Более общий подход, чем rename (которое доступно не для всех * nix), и потенциально допускающий некоторую креативность:

find . -name 'x*' | while read filename; do mv "$filename" $(echo "$filename" | sed -e 's/x/x00/'); done
0

В чистом виде:

for a in x?.jpg; do mv "$a" "${a/x/x00}"; done
for a in x??.jpg; do mv "$a" "${a/x/x0}"; done

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .