无法重命名文件名

时间:2013-08-28 11:09:58

标签: linux bash character-encoding rename mv

我有一个小的bash脚本,可以下载和重命名文件。问题在于bash无法理解的一些乱语而非标准字符。

例如:

�������� ���� ���'�-2.jpg

我的bash

while read line; do
 if [ ! -z "$line" ]; then
  NEW_FILENAME=$(echo "$line" | uniconv -encode Russian-Translit |  uniconv -encode Latin | tr -d '\[\]\!\@\#\$\%\^\&\*\(\)\?\'')
  mv "$line" "$NEW_FILENAME"
 fi
done <<< "$FILES_TO_CONVERT"

1 个答案:

答案 0 :(得分:0)

为什么不用以下内容删除这些字符:
    sed 's/[^a-zA-Z0-9_\.-]//g'