如何将旧文件批量转换为 UTF8?

Sad*_*adi 3 conversion utf-8

我认为对我来说理想的解决方案是Nautilus 脚本,它对选定的文件执行编码转换

以下脚本读取选定文件的编码,如果不是 utf8,则执行 utf8 转换,但我不知道如何使其适用于多个文件

CHARSET="$(file -bi "$1"|awk -F "=" '{print $2}')"
if [ "$CHARSET" != utf-8 ]; then
iconv -f "$CHARSET" -t utf8 "$1" -c -o "$1.utf8"
fi
Run Code Online (Sandbox Code Playgroud)

Fli*_*imm 5

假设您的脚本名为convert-to-utf-8.sh. 以下是让它在多个文件中工作的方法:

for filename in file1 file2 file3 ; do ./convert-to-utf-8.sh "$filename" ; done
Run Code Online (Sandbox Code Playgroud)

您可以将该 for 循环合并到脚本本身中,如下所示:

for filename in "$@"; do
    CHARSET="$(file -bi "$filename"|awk -F "=" '{print $2}')"
    if [ "$CHARSET" != utf-8 ]; then
        iconv -f "$CHARSET" -t utf8 "$filename" -c -o "$filename.utf8"
    fi
done
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用多个文件名运行脚本,如下所示:

./convert-to-utf-8.sh file1 file2 file3
Run Code Online (Sandbox Code Playgroud)