帮助shell脚本 - 重命名目录中的文件名(删除特殊字符)?

时间:2010-06-18 22:23:33

标签: regex linux bash

我有一个带空格和各种字符的csv文件目录。我该如何重命名?以下是错误。

#! /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 ..

谢谢!

更新:(这有效)

#! /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 ..

1 个答案:

答案 0 :(得分:2)

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