Как заменить имена файлов номерами, начинающимися с определенного номера? - PullRequest
0 голосов
/ 21 мая 2018

Я хочу, чтобы файлы назывались 177.jpg, 178.jpg и так далее, начиная с 177.jpg.Я использовал это, чтобы переименовать их от 1 до количества файлов:

ls | cat -n | while read n f; do mv "$f" "$n.jpg"; done 

Как изменить это?Но совершенно новый сценарий тоже был бы замечательным.

Ответы [ 2 ]

0 голосов
/ 21 мая 2018

Это должно работать.

#!/bin/bash
c=177;
for i in `ls | grep -v '^[0-9]' | grep .png`; # This will make sure only png files are selected to replace and only the files which have filenames which starts with non-numeric
 do
     mv "$i" "$c".png;
    (( c=c+1 )); 
done
0 голосов
/ 21 мая 2018

Bash может сделать для вас простую математику:

mv "$f" $(( n + 176 )).jpg

Просто надеемся, что ни одно имя файла не содержит символ новой строки.

Есть более безопасные способы, чем парсинг вывода ls, например, переборрасширенный шаблон:

n=177
for f in * ; do
    mv "$f" $(( n++ )).jpg
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...