2010-06-18 45 views
1

我有一个包含空格和各种字符的csv文件的目录。我如何重命名它们?以下给出一个错误。shell脚本帮助 - 重命名目录中的文件名(删除特殊字符)?

#! /bin/bash 

cd DirectoryName 

for file in *.csv; do 
    #echo $file 
    filename=${file%.*} 
    file_clean=${filename//[()$+&\.\-\'\,]/_} 
    final= "$file_clean.csv" 
    mv "$file" $final 
done 

cd .. 

谢谢!

UPDATE:(这工作)

#! /bin/bash 

cd DirectoryName 

for file in *.csv; do 
    #echo $file 
    filename=${file%.*} 
    file_clean=${filename//[()$+&\.\-\'\,]/_} 
    final= "$file_clean.csv" 
    mv "$file" $final 
done 

cd .. 
+0

错误信息可能会帮助 – 2010-06-18 22:40:23

+0

bash:filename不是命令错误...现在修复!谢谢! – ThinkCode 2010-06-18 23:08:09

+0

更新后的版本看起来与原始版本相同。 – 2010-06-19 01:01:49

回答

2

当然它中。您没有引用替换内容,并且您对$final的分配不正确。引用所有替代用法,并在等号后删除空格。

+0

你先生,是一个主人:)从来没有意识到一个空间会搞砸了! – ThinkCode 2010-06-18 23:03:15