(亲测可用)
#!/bin/bash
#print the derectory and file
#待转码的文件所在的目录
for file in /data/yulong/qa/*
do
if [ -d "$file" ]
then
echo "$file is directory"
elif [ -f "$file" ]
then
file1=`basename $file`
#转码后文件存储的目录
dir=/data/yulong/qa_utf8/
file2=$dir${file1%%.*}_utf8.csv
iconv -f gb18030 -t utf8 $file > $file2
echo "$file --gb18030--->--utf8-------> $file2"
fi
done
测试结果如下(显示转码成功):
更完善点如下(加了转码错误判断,没有测试,可能有问题):
#!/bin/bash
#print the derectory and file
#此处目录为待转码的目录
for file in /data/yulong/qa/*
do
if [ -d "$file" ]
then
echo "$file is directory"
elif [ -f "$file" ]
then
file1=`basename $file`
#转码后文件存储在目录
dir=/data/yulong/qa_utf8/
file2=$dir${file1%%.*}_utf8.csv
echo "$file ----> $file2"
iconv -f gb18030 -t utf8 $file > $file2
if [ $? -eq 1 ]
then
echo "$file 转码失败"
continue
fi
fi
done
参考文章:Linuxshell字符串截取与拼接