一个批量移除BOM头的bash脚本

本文介绍了一个用于批量去除UTF-8编码文件BOM头的Shell脚本。该脚本能够处理单个文件或整个目录,对于需要提交到特定SVN服务器(如不允许BOM头存在)的情况非常有用。

有时候我们的文件可能不需要BOM头,例如:我们公司的SVN服务器提供的代码都UTF8编码保存(不能有BOM头)否则代码提交不上去。

文件很多的时候就需要批量操作。

 

脚本使用方法:remove-bom.sh filePath|dirPath

参数可传文件路径或目录路径。具体代码如下:

#!/usr/bin/env bash

# @author frank
# @email frank@mondol.info
# @created 2016-09-01
#
# Usage: remove-bom.sh filePath|dirPath

removeBomByFile() {
    bomFile=`grep -I -l $'^\xEF\xBB\xBF' $1`
    if [ x$1 = x$bomFile ]; then
        # has BOM
        sed -i 's/\xEF\xBB\xBF//' $1
        echo BOM removed by file: $1
    fi
}

if [ -d $1 ]; then
    for filePath in `find $1 -type f | grep -vE "/\.[^/]+/"`
    do
        # grep exclude hide files
        removeBomByFile $filePath
    done
elif [ -e $1 ]; then
    removeBomByFile $1
else
    echo $1 is not a file or directory
fi

 

转载于:https://www.cnblogs.com/mondol/p/5830008.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值