#!/bin/bash
for loop in `find . -type f -name "*.sql" -print`
do
echo $loop
mv -f $loop $loop.tmp
dos2unix $loop.tmp
file_check_utf8='file_check_utf8.log'
sed -n '1l' $loop.tmp >$file_check_utf8
if grep '^\\357\\273\\277' $file_check_utf8 >/dev/null 2>&1
then
echo 'UTF-8 BOM'
sed -n -e '1s/^...//' -e 'w intermediate.txt' $loop.tmp
iconv -f UTF-8 -t GB2312 -o $loop intermediate.txt
rm -rf intermediate.txt
rm -rf $loop.tmp
elif iconv -f UTF-8 -t GB2312 $loop.tmp >/dev/null 2>&1
then
echo 'UTF-8'
iconv -f UTF-8 -t GB2312 -o $loop $loop.tmp
rm -rf $loop.tmp
else
echo 'ANSI'
mv -f $loop.tmp $loop
fi
rm -rf $file_check_utf8
#模拟unix2dos,要求文本文件最后一行必须有换行符
sed -n -e 's/$/\r/g' -e 'w '$loop.tmp $loop
mv -f $loop.tmp $loop
done
#!/bin/bash
for loop in `find . -type f -name "*.sql" -print`
do
echo $loop
mv -f $loop $loop.tmp
dos2unix $loop.tmp
file_check_utf8='file_check_utf8.log'
sed -n '1l' $loop.tmp >$file_check_utf8
if grep '^\\357\\273\\277' $file_check_utf8 >/dev/null 2>&1
then
echo 'UTF-8 BOM'
sed -n -e '1s/^...//' -e 'w intermediate.txt' $loop.tmp
iconv -f UTF-8 -t GB2312 -o $loop intermediate.txt
rm -rf intermediate.txt
rm -rf $loop.tmp
elif iconv -f UTF-8 -t GB2312 $loop.tmp >/dev/null 2>&1
then
echo 'UTF-8'
iconv -f UTF-8 -t GB2312 -o $loop $loop.tmp
rm -rf $loop.tmp
else
echo 'ANSI'
mv -f $loop.tmp $loop
fi
rm -rf $file_check_utf8
#模拟unix2dos,要求文本文件最后一行必须有换行符
sed -n -e 's/$/\r/g' -e 'w '$loop.tmp $loop
mv -f $loop.tmp $loop
done