# cat asciiReplaceScript.sh
#!bin/sh # 特殊字符查看表 # https://blog.csdn.net/xfg0218/article/details/80901752 echo "参数说明" echo -e "\t 第一个参数是带有特殊字符的文件,第二个参数是需要生成新文件的名字" echo -e "\t 例如: sh ascllReplace.sh bandConversionFile.log postConversionFile.log" echo # 对输入参数进行校验 if [ ! -n "$1" ];then echo -e "\t 请输入第一个参数...." exit elif [ ! -n "$2" ];then echo -e "\t 请输入第二个参数...." exit elif [ -f $2 ];then echo -e "\t"$2"文件已被占用,请更换输出文件命!" exit fi echo -e "\t 转换开始......" # 特殊字符的集合,28是特殊字符的10进制代码 fs=`echo 28 | awk '{printf("%c", $1)}'` doc1=`echo 17 | awk '{printf("%c", $1)}'` doc2=`echo 18 | awk '{printf("%c", $1)}'` sub=`echo 26 | awk '{printf("%c", $1)}'` nul=`echo 0 | awk '{printf("%c", $1)}'` rs=`echo 30 | awk '{printf("%c", $1)}'` gs=`echo 29 | awk '{printf("%c", $1)}'` etb=`echo 23 | awk '{printf("%c", $1)}'` # 替换开始 sed -e 's/'$fs'//g' -e 's/'$doc1'//g' -e 's/'$doc2'//g' -e 's/'$sub'//g' -e 's/'$nul'//g' -e 's/'$rs'//g' -e 's/'$gs'//g' -e 's/'$etb'//g' $1 >> $2
echo -e "\t 转换结束......"
# 退出脚本 exit