Я хочу сделать дополнение нуля для названий файлов. что должно я делать, если не все изображения существуют как 1. JPEG не существует или 99. JPEG или 110. JPEG?
$ for n in $(seq 9); do mv $n.JPEG 0$n.JPEG; done; mv: cannot stat ‘1.JPEG’: No such file or directory
Я не хочу переименовывать вручную, потому что порядок видео важен.
Можно использовать if
в цикле, чтобы проверить, существует ли файл. И если это делает, затем только mv
операция произошла бы.
for n in $(seq 9)
do
if [[ -f $n.JPEG ]]
then
mv $n.JPEG 0$n.JPEG
fi
done;
Или в одной строке:
for n in $(seq 9); do if [[ -f $n.JPEG ]]; then mv $n.JPEG 0$n.JPEG; fi done;
Используя расширение параметра можно разделить имя файла на имя и расширение, затем склеить их вместе с printf
форматирование
#!/bin/bash
for i in *; do
mv $i $(printf %04d.%s\\n ${i/./ })
done
форматирование printf:
%04d
цифра клавиатуры с четырьмя нулями.%s
Строка символов.$ {параметр/шаблон/строка}