Переименование нескольких файлов с помощью Bash [duplicate]

Это называется скриптом.

Щелкните правой кнопкой мыши на текстовом файле, выберите свойства, выберите разрешение, отметьте текстовое поле «Пусть этот файл будет выполнен». Теперь вы можете выполнить его, просто дважды щелкнув файл.

Вы также можете сделать это из консоли следующим образом:

sh ec2-env-setup.

Или изменить разрешения и затем выполнить его:

chmod u+x ec2-env-setup.
./ec2-env-setup.
1
задан 20 March 2018 в 01:40

6 ответов

Адаптировано из одного из ответов Оли:

rename -n 's/.+/our $i; $i++; sprintf("%014d_1.jpg", $i)/e' *

Это занимает каждый файл в текущем каталоге и переименовывает его с номером с цифрами 14 (надеюсь, я правильно подсчитал), а затем . our $i вводит глобальную переменную i, которая затем увеличивается на единицу и печатается с помощью sprintf. e rename, чтобы оценить правую сторону замены (= все между вторым и третьим /) как выражение, а не буквально. Если вы довольны результатами, удалите -n, чтобы выполнить переименование.

Если вы хотите погрузиться в выражения perl и их красоту, один из ответов Оли - это путь.

4
ответ дан 22 May 2018 в 12:29

Адаптировано из одного из ответов Оли:

rename -n 's/.+/our $i; $i++; sprintf("%014d_1.jpg", $i)/e' *

Это занимает каждый файл в текущем каталоге и переименовывает его с номером с цифрами 14 (надеюсь, я правильно подсчитал), а затем _1.jpg. our $i вводит глобальную переменную i, которая затем увеличивается на единицу и печатается с помощью sprintf. e rename, чтобы оценить правую сторону замены (= все между вторым и третьим /) как выражение, а не буквально. Если вы довольны результатами, удалите -n, чтобы выполнить переименование.

Если вы хотите погрузиться в выражения perl и их красоту, один из ответов Оли - это путь.

4
ответ дан 17 July 2018 в 18:29

Адаптировано из одного из ответов Оли:

rename -n 's/.+/our $i; $i++; sprintf("%014d_1.jpg", $i)/e' *

Это занимает каждый файл в текущем каталоге и переименовывает его с номером с цифрами 14 (надеюсь, я правильно подсчитал), а затем _1.jpg. our $i вводит глобальную переменную i, которая затем увеличивается на единицу и печатается с помощью sprintf. e rename, чтобы оценить правую сторону замены (= все между вторым и третьим /) как выражение, а не буквально. Если вы довольны результатами, удалите -n, чтобы выполнить переименование.

Если вы хотите погрузиться в выражения perl и их красоту, один из ответов Оли - это путь.

4
ответ дан 23 July 2018 в 19:17

Будет ли это работать для вас:

i=1
for file in *; do
    mv "$file" "$(printf %014d $i)_1.jpg"
    i=$((i+1))
done

Он переименует каждый файл в текущем каталоге следующим образом:

00000000000001_1.jpg
.
.
00000000000009_1.jpg
.
.
00000000000010_1.jpg
.
.
2
ответ дан 22 May 2018 в 12:29
  • 1
    замените ._$file на _1.jpg, и я думаю, что у вас это есть. – WinEunuuchs2Unix 20 March 2018 в 03:10
  • 2
    Я отредактировал свой ответ, я думал, что _1.jpg должно было быть оригинальным именем файла. – Paul 20 March 2018 в 03:57
  • 3
    Смотрю лучше. Просто нужно изменить ._1.jpg на _1.jpg, тогда я думаю, что это идеально. – WinEunuuchs2Unix 20 March 2018 в 05:48

Будет ли это работать для вас:

i=1 for file in *; do mv "$file" "$(printf %014d $i)_1.jpg" i=$((i+1)) done

Он переименует каждый файл в текущем каталоге следующим образом:

00000000000001_1.jpg . . 00000000000009_1.jpg . . 00000000000010_1.jpg . .
2
ответ дан 17 July 2018 в 18:29

Будет ли это работать для вас:

i=1 for file in *; do mv "$file" "$(printf %014d $i)_1.jpg" i=$((i+1)) done

Он переименует каждый файл в текущем каталоге следующим образом:

00000000000001_1.jpg . . 00000000000009_1.jpg . . 00000000000010_1.jpg . .
2
ответ дан 23 July 2018 в 19:17
  • 1
    замените ._$file на _1.jpg, и я думаю, что у вас это есть. – WinEunuuchs2Unix 20 March 2018 в 03:10
  • 2
    Я отредактировал свой ответ, я думал, что _1.jpg должно было быть оригинальным именем файла. – Paul 20 March 2018 в 03:57
  • 3
    Смотрю лучше. Просто нужно изменить ._1.jpg на _1.jpg, тогда я думаю, что это идеально. – WinEunuuchs2Unix 20 March 2018 в 05:48

Другие вопросы по тегам:

Похожие вопросы: