删除奇怪的字符并在ssh上重命名时添加前缀

时间:2018-01-28 05:49:45

标签: bash ssh

我发现这个命令用下划线替换空格:

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
你可以帮帮我吗?

3 个答案:

答案 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