【发布时间】:2011-05-13 18:19:11
【问题描述】:
我希望有人可以帮助我,我需要从 cygwin 系统上的数千个文件中删除空格(而不是用下划线替换)。 我可以以某种方式使用 rename 或 mv 从 shell 执行此操作吗?
目前:
文件 one.mp3
文件二.mp3
所有文件都需要变成:
fileone.mp3
filetwo.mp3
谢谢
【问题讨论】:
标签: batch-file renaming
我希望有人可以帮助我,我需要从 cygwin 系统上的数千个文件中删除空格(而不是用下划线替换)。 我可以以某种方式使用 rename 或 mv 从 shell 执行此操作吗?
目前:
文件 one.mp3
文件二.mp3
所有文件都需要变成:
fileone.mp3
filetwo.mp3
谢谢
【问题讨论】:
标签: batch-file renaming
除了上面修改文件名的答案,下面是修改目录名的代码:
find $DIR -type d -name '* *' | while read f; do d="${f%/*}"; f="${f##*/}"; echo mv "$d/$f" "$d/${f// }"; done
唯一的区别是从行首开始的第四个参数。字母“f”改为“d”,分别对应文件和目录。
【讨论】:
默认的 Cygwin shell 是 bash,所以...
试试这个命令行,将 $DIR 替换为您要执行上述转换的目录,然后检查输出:
find $DIR -type f -name '* *' | while read f; do d="${f%/*}"; f="${f##*/}"; echo mv "$d/$f" "$d/${f// }"; done
如果您对将要执行的命令感到满意,只需删除 mv 之前的 echo 并重复执行实际的重命名。请注意,这只会重命名文件,而不是目录。
【讨论】: