面试题答案
一键面试#!/bin/bash
# 定义函数来转换文件编码
convert_file() {
local file="$1"
local temp_file=$(mktemp)
iconv -f $(file -bi "$file" | cut -d ';' -f1) -t UTF-8 "$file" > "$temp_file" 2>/dev/null
if [ $? -eq 0 ]; then
mv "$temp_file" "$file"
else
echo "$file" >> error_files.log
rm "$temp_file"
fi
}
# 遍历所有子目录及文件
find . -type f -name "*.txt" | while read -r file; do
convert_file "$file"
done