我需要编写一个脚本,它会自动重命名一些文件,并包含一个用户定义的字符串。例如,我希望将文件*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
问题是没有任何事情发生。
答案 0 :(得分:1)
您的脚本中的一些更改。请参阅以下内容:
#!/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
答案 1 :(得分:1)
您可以在循环中尝试此操作:
for file in *.jpg
do
mv ${file} $file$str
done
答案 2 :(得分:0)
像
这样的东西cnt=1
for file in *.jpg; do
cname=$(printf "%03d" $cnt)
mv "${file%.jpg}" "${str}_$cname.jpg"
((cnt++))
done
(在用户读取str之后,如你所做的那样)将从“whatever.jpg”重命名为“myString_NNN.jpg”,例如第一个是“myString_001.jpg”,第二个是“myString_002.jpg”,依此类推。