gpt4 book ai didi

linux - ubuntu utf-8 转换器脚本

转载 作者:太空宇宙 更新时间:2023-11-04 04:25:54 25 4
gpt4 key购买 nike

我有这个脚本,它与 iconv 一起使用,自动将目录中的一组文件的编码转换为 UTF-8,并将原始文件扩展名更改为 .old,但我想知道如何更改脚本以使其看起来并转换目录中的所有文件以及所有子目录中的所有文件。

终端代码:

sudo convert/dir_iconv.sh convert/books cp1251 utf8

dir_iconv.sh 脚本

#!/bin/bash

ICONVBIN='/usr/bin/iconv' # path to iconv binary

if [ $# -lt 3 ]
then
echo "$0 dir from_charset to_charset"
exit
fi

for f in $1/*
do
if test -f $f
then
echo -e "\nConverting $f"
/bin/mv $f $f.old
$ICONVBIN -f $2 -t $3 $f.old > $f
else
echo -e "\nSkipping $f - not a regular file";
fi
done

最佳答案

尝试使用类似 for f in $(find $1 -type f) 的内容,而不是 for f in $1/*。此外,find 命令上的 -type f 选项将为您跳过非文件对象,因此不需要 测试 和条件逻辑。

[编辑]

例如,这可能有效,完全未经测试(也清理了格式):

#!/bin/bash

ICONVBIN='/usr/bin/iconv' # path to iconv binary

if [[ $# -lt 3 ]]; then
echo "$0 dir from_charset to_charset"
exit
fi

for f in $(find $1 -type f); do
echo "Converting $f"
/bin/mv $f $f.old
$ICONVBIN -f $2 -t $3 $f.old > $f
done

关于linux - ubuntu utf-8 转换器脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8994845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com