Вот текущая структура папок:Как удалить все не-числовые символы из файла рекурсивно
/home/ubuntu/Desktop/pictures/
/home/ubuntu/Desktop/pictures/folder1
/home/ubuntu/Desktop/pictures/folder1/John Doe - 1234567.JPG
/home/ubuntu/Desktop/pictures/folder2
/home/ubuntu/Desktop/pictures/folder2/Homer Simpson - 7654321.jpg
/home/ubuntu/Desktop/pictures/folder2/Lisa Simpson - 321456.jpg
/home/ubuntu/Desktop/pictures/folder3
/home/ubuntu/Desktop/pictures/folder3/Foo Bar - 234123.JPG
/home/ubuntu/Desktop/pictures/folder3/Bar Foo - 876542.JPG
Что я хочу, чтобы создать сценарий, который бы цикл через все папки в «картинки» и переименуйте все файлы «JPG» и «jpg» в их числовые значения, чтобы имя файла «John Doe - 1234567.JPG» превратилось в «1234567.JPG».
я попробовать оболочки сценариев, но я получил это работает только тогда, когда JPG файлы находятся в одной папке:
[email protected]:~/Desktop/pictures/in_one_folder$ ls
John Doe - 1234567.JPG Foo Bar - 234123.JPG
Homer Simpson - 7654321.jpg Bar Foo - 876542.JPG
Lisa Simpson - 321456.jpg script.sh
работы этого сценария:
for f in *JPG *jpg;
do
file=$f
remove_non_numeric=$(echo "$file" | sed 's/[^0-9]*//g')
add_extension="$remove_non_numeric.jpg"
echo "$add_extension"
mv "$file" "$add_extension"
done
И вот результат:
[email protected]:~/Desktop/pictures/in_one_folder$ ls
1234567.jpg 234123.jpg
7654321.jpg 876542.jpg
321456.jpg script.sh
Так что это делало то, что предполагалось. Теперь вопрос в том, как я могу настроить его на цикл через папки. Или, если нет способа изменить код, который я придумал (новичок пытается учиться, ха-ха), тогда я буду признателен за другие способы достижения результата. Хотя я пытаюсь получить эту работу в Linux, подход Windows тоже будет прекрасен.
Спасибо за помощь!