我有一些包含斯洛伐克字符的文件,我将它们复制到我的 Ubuntu 中,现在它们里面有这些奇怪的符号,有人知道我该如何删除这些字符吗?
答案1
您可以利用该iconv
实用程序,将字符串从一种字符编码转换为另一种字符编码,并且当目标编码错过类似字符时,还可以将其音译为类似的字符。
以下脚本将把命令行上传递的每个文件重命名为同名的 ascii 版本。input_enc
如果需要,修改变量,并将其作为第一个参数运行--no-test
以真正重命名。
#!/bin/bash
input_enc="UTF-8"
test=1
if [[ $1 == '--no-test' ]]; then
test=0
shift
else
echo "This is a simulation"
echo "run with --no-test as first parameter to really rename"
echo
fi
normalize() {
local f="$1"
echo "$f" | iconv -f "$input_enc" -t ASCII//TRANSLIT
}
for f; do
g="$(normalize "$f")"
if ((test)); then
echo mv -i "$f" "$g"
else
mv -i "$f" "$g"
fi
done