Linux Can';不要重命名文件名
我有一个小bash脚本,可以下载和重命名文件。问题在于bash无法理解的一些乱七八糟的非标准字符 例如:Linux Can';不要重命名文件名,linux,bash,character-encoding,rename,mv,Linux,Bash,Character Encoding,Rename,Mv,我有一个小bash脚本,可以下载和重命名文件。问题在于bash无法理解的一些乱七八糟的非标准字符 例如: �������� ���� ���'�-2.jpg 我的狂欢 while read line; do if [ ! -z "$line" ]; then NEW_FILENAME=$(echo "$line" | uniconv -encode Russian-Translit | uniconv -encode Latin | tr -d '\[\]\!\@\#\$\%\^\&a
�������� ���� ���'�-2.jpg
我的狂欢
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"
读行时;做
如果[!-z“$line”];然后
新文件名=$(echo“$line”| uniconv-编码俄语翻译| uniconv-编码拉丁语| tr-d'\[\]\!\@\\\\\\\\\$\%\^\&\*\(\)\?')
mv“$line”“$NEW_文件名”
fi
完成为什么不删除带有如下内容的字符:
sed的/[^a-zA-Z0-9\.-]///g'
它不工作吗?尝试将-r选项添加到您的read命令中:read-r行
。您是说$FILES\u to\u CONVERT
中的某些文件名乱七八糟,还是脚本正在生成一些乱七八糟的文件名?某些文件名乱七八糟。您是否尝试过用重命名
而不是tr
<代码>重命名's/[^a-zA-Z0-9]//g'*.jpg
rename
是一个用于重命名多个文件的Perl脚本。也许不完全是您想要的,但有时非常有用。可能是这些文件名包含换行符。