我想以以下格式重命名文件:
img_MM-DD-YY_XX.jpg
img_MM-DD-YY_XXX.jpg
至:
newyears_YYYY-MM-DD_XXX.jpg
哪里:
我想出了这个脚本,但它不起作用:
for filename in ?*.jpg; do
newFilename=$(echo $filename | \
sed 's/img_\(.*\)-\(.*\)-\(.*\)_\([0-9][0-9]\)\./newyears_20\3-\1-\2_0\4./;
s/img_\(.*\)-\(.*\)-\(.*\)_\([0-9][0-9][0-9]\)/newyears_20\3-\1-\2_\4/' -)
mv $filename $newFilename
done
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
anu*_*ava 12
你可以在bash中尝试这个脚本:
for filename in *.jpg; do
newFilename=$(sed -E 's#img_([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})_(.*)$#newyears_20\3-\2-\1_\4#' <<< "$filename")
mv "$filename" "$newFilename"
done
Run Code Online (Sandbox Code Playgroud)
sed -E也得到了支持gnu sed.