Как объединить заменить имена файлов - PullRequest
0 голосов
/ 27 июля 2011

Мне нужно написать скрипт, который будет автоматически переименовывать несколько файлов и включать пользовательскую строку.Например, я хочу, чтобы файл *001.jpg был переименован в "user defined string" + 001.jpg (например: MyVacation20110725_001.jpg).

Это то, что я пробовал до сих пор:

#!/bin/sh

echo "Type the user-defined string, followed by [Enter]: "
read str
for file in *.jpg; do 
`sed s/$str_$file/$file/`;
done

проблема в том, что ничего не происходит.

Ответы [ 3 ]

1 голос
/ 27 июля 2011

Вы можете попробовать это в своем цикле:

for file in *.jpg
do
mv ${file} $file$str
done
1 голос
/ 27 июля 2011

Некоторые изменения в вашем скрипте. См. Ниже:

#!/bin/sh

echo "Type the user-defined string,followed byt[Enter]: "
read str
for file in *.jpg; do 
new_name=`echo ${str}_${file}`;
mv ${file} ${new_name}
done
0 голосов
/ 27 июля 2011

Что-то вроде

cnt=1
for file in *.jpg; do
   cname=$(printf "%03d" $cnt)
   mv "${file%.jpg}" "${str}_$cname.jpg"
   ((cnt++))
done

(после того, как вы прочитали str от пользователя, как вы это сделали) переименовывается из "what.jpg" в "myString_NNN.jpg", например, первым будет «myString_001.jpg», вторым «myString_002.jpg» и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...