我发现这个命令用下划线替换空格:
for file in *.jpg; do mv "$file" ${file// /_}; done
但很多照片都有类似'@ñ的字符,并希望自动删除它们,并且还想添加后缀o前缀。
离。
pic's@nick_0001.jpg
pic's@nick_0003.jpg
pic's@nick_0003.jpg
到
vacations_pics_nick_0001.jpg
pics_nick_0001_vacations.jpg
你可以帮帮我吗?
答案 0 :(得分:1)
for file in *.jpg
do
mv "$file" $(sed 's/[^ [:alnum:]]//g;s/ /_/g;s/^/your_prefix/' <<<"$file")
done
应该做的工作
答案 1 :(得分:1)
两种解决方案都可以正常工作。
有没有办法在一行上使用该命令,就像我给别人一起使用的例子一样:
for file in * do mv&#34; $ file&#34; &#34; $ {文件// [^一个-Z0-9] / _}&#34;完成;
...&#39;
答案 2 :(得分:0)
使用bash:
for file in *
do
mv "$file" "${file//[^a-z0-9]/_}"
done
测试:
$ touch "pic's@nick_0001.jpg"
$ ls
pic's@nick_0001.jpg
$ for file in *; do mv "$file" "${file//[^a-z0-9]/_}"; done
$ ls
pic_s_nick_0001_jpg