如何从Cygwin下的多个文件名中删除空格

时间:2010-11-22 10:21:36

标签: batch-file renaming

我希望有人可以帮助我,我需要从cygwin系统上的几千个文件中删除空格(不能用下划线替换)。 我可以使用rename或mv以某种方式从shell执行此操作吗?

目前:

档案one.mp3
文件two.mp3

所有文件都需要成为:

fileone.mp3

filetwo.mp3

由于

2 个答案:

答案 0 :(得分:1)

默认的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并重复执行实际的重命名。请注意,这只会重命名文件,而不是目录。

答案 1 :(得分:0)

除了上面更改文件名的答案外,还有更改目录名的代码:

find $DIR -type d -name '* *' | while read f; do d="${f%/*}"; f="${f##*/}"; echo mv "$d/$f" "$d/${f// }"; done

唯一的区别是该行开头的第四个参数。字母“f”变为“d”,分别对应文件和目录。