【Shell】遍历指定目录所有文件并根据后缀检查文件格式是u8或win换行

定义检查文件日志输出 参数1:日志内容

print_log()
{
echo -e date +%F\ %T : “${1}”
}

遍历所有获取文件
get_all_file_from_dir(){
  local father_dir_name=$1
  for child_file in `ls ${father_dir_name}`
  do
    local child_file_path=${father_dir_name}/${child_file}
    if [ -d ${child_file_path} ] ;then
      #print_log "子目录是文件夹继续遍历子文件:[${1}/${child_file}]"
      get_all_file_from_dir ${child_file_path}
    else
    # 判断文件后缀
    #print_log "文件后缀:[${child_file_path##*.}]"  ## 就是用.分割取最后一个
    #print_log "子目录是文件,可进行文件处理了:[${child_file_path}]"
      if ! [[ ${check_file_suffix} =~ ${child_file_path##*.} ]] ;then   ## [[]] 不会发生单词分割,其他基本通用
        print_log "[INFO:]无需检查此文件,跳出本次循环,文件名[${child_file_path}]" 
        continue
      fi
      if [ ` file -b ${child_file_path} | grep -iE "UTF-8|ASCII" | wc -l` = "1"  ] ;then 
        print_log "[INFO:]文件是UTF-8或者ASCII格式。文件名[${child_file_path}]" 
      else 
        print_log "[WARRING:]文件不是UTF-8或者ASCII格式。文件名[${child_file_path}]" 
      fi
      if [ ` file -b ${child_file_path} | grep "CRLF" | wc -l` = "1"  ] ;then 
        print_log "[ERROR:]文件换行符号为Win系统,请马上修改!文件名[${child_file_path}]" 
      fi 
          
    fi    
  done
}

check_file_suffix='sh'
get_all_file_from_dir $path_name
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值