2016-11-29 2 views
-1

У меня есть папка FOLDER1 с разными файлами в ней.Изменение имен файлов в определенной папке через bash

У меня есть несколько файлов в папке с расширением .png

Я хотел бы изменить имя файла всех файлов с расширением .png с Баш скрипт. Я попытался написать один, но я все еще не пришел, чтобы получить то, что хочу.

#!/bin/bash 
# make sure you always put $f in double quotes to avoid any nasty surprises i.e. "$f" 
i=0 
for f in *.png 
do 
    echo "${i}Processing $f file..." 
    i+=1; 
    echo ${i} 
    # rm "$f" 
done 

В конце сценария я хотел бы, чтобы все файлы с именами, как:

с-1.png

с-2.png

С-3. PNG

...

...

...

Не могли бы вы мне помочь? Благодаря

+0

http://stackoverflow.com/questions/18686832/rename-all-files-in-folder-to-numbered-list-1-jpg-2-jpg –

ответ

1

К сожалению, я нашел решение.

Этот код работает отлично.

#!/bin/bash 
# make sure you always put $f in double quotes to avoid any nasty surprises i.e. "$f" 
i=0 
for f in *.png 
do 
    echo "$i Processing $f file..." 
    i=$((i+1)) 
    mv $f "c-"$i.png 
    #echo ${i} 
done 
1

Прежде всего заметим, что:

i+=1 

струнный дополнение. Что вы делаете 0,01,011,0111 .... Вам нужно:

((++i)) 

Далее вам нужно разделить ваше имя файла, один путь, если «» появляется только один раз:

base=$(echo $f | cut -d. -f1) 

и, наконец, перейти:

mv $f ${base}-${i}.png 
1
#!/bin/bash 
i=0 
for f in *.png 
do 
    echo "${i}Processing $f file..." 
    i=$((i + 1)) 
    newname="c-${i}.png" 
    mv "$f" $newname 
done 
+0

Да, я приехал тот же вывод. Всем спасибо за ответы. – kalmanIsAGameChanger