[求助]关于改文件名的空格问题(已解决)

sh/bash/dash/ksh/zsh等Shell脚本
回复
daniel.supremacy
帖子: 133
注册时间: 2008-12-12 15:35

[求助]关于改文件名的空格问题(已解决)

#1

帖子 daniel.supremacy » 2009-02-08 20:41

我一个文件夹下面有许多pdf文档
因为下载的缘故,所以有很多遗留问题,其中一个就是文件名中间有空格
比如
ABC version 2008-10-1 whois.pdf
DEF chaos 2008-12-2 unknown.pdf
[我的文件].Kd.Pl.2007-2-1.pdf
等等
格式不一定一样

我想将ABC version 2008-10-1 whois.pdf以及DEF chaos 2008-12-2 unknown.pdf这样有空格的文件名的空格(\ )用点(\.)或用下划线(_)来代替。

==================
google出一个解决方案
ls *\ *.pdf |
while read name; do
newname=$(echo $name | tr '\ ' '\.')
if [ "$name" != "$newname" ]; then
mv "$name" "$newname"
fi
done
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: [求助]关于改文件名的空格问题(已解决)

#2

帖子 aerofox » 2009-02-08 23:00

其实有一条命令就可以了:

代码: 全选

rename 's/ /./g' *\ *.pdf
写脚本也可以不用 ls 和管道(如果文件名中包含换行符(罕见),楼上的脚本会有问题):

代码: 全选

for f in *\ *.pdf; do
    mv "$f" "${f// /.}"
done
此脚本适用于 bash。
daniel.supremacy
帖子: 133
注册时间: 2008-12-12 15:35

Re: [求助]关于改文件名的空格问题(已解决)

#3

帖子 daniel.supremacy » 2009-02-09 11:55

学习了
头像
lerosua
论坛版主
帖子: 8455
注册时间: 2007-11-29 9:41
联系:

Re: [求助]关于改文件名的空格问题(已解决)

#4

帖子 lerosua » 2009-02-09 13:31

嗯,也记住这个
sevan
帖子: 15
注册时间: 2008-08-04 20:25

Re: [求助]关于改文件名的空格问题(已解决)

#5

帖子 sevan » 2009-08-09 20:03

强贴留名~!!! :em05
回复