从文件夹中的文件名中删除空格

问题描述 投票:15回答:1

我有一种情况,我需要每天在Xsan上的文件夹中删除400多个文件,并在文件的文件名中替换低分的空格。

有没有人有手头的脚本,我可以通过终端运行,例如,这将为我做这个?

macos terminal finder file-rename
1个回答
36
投票

在这里,循环遍历当前目录中的所有文件(和文件夹):

for oldname in *
do
  newname=`echo $oldname | sed -e 's/ /_/g'`
  mv "$oldname" "$newname"
done

请注意,这将覆盖具有相同名称的文件。也就是说,如果有两个文件具有其他方面相同的文件名,但是一个文件具有下划线,而另一个文件具有空格。在那种情况下,具有下划线的那个将被具有空格的那个覆盖。这个较长的版本将跳过这些情况:

for oldname in *
do
  newname=`echo $oldname | sed -e 's/ /_/g'`
  if [ "$newname" = "$oldname" ]
  then
    continue
  fi
  if [ -e "$newname" ]
  then
    echo Skipping "$oldname", because "$newname" exists
  else
    mv "$oldname" "$newname"
  fi
done
© www.soinside.com 2019 - 2024. All rights reserved.