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

Posted 萌豆笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个批量移除BOM头的bash脚本相关的知识,希望对你有一定的参考价值。

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

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

 

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

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

#!/usr/bin/env bash

# @author frank
# @email [email protected]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

 

以上是关于一个批量移除BOM头的bash脚本的主要内容,如果未能解决你的问题,请参考以下文章

求个给UTF-8文件批量去UTF-8 BOM头的批处理,去掉BOM后覆盖原来的文件,最好我可以自己添加多个文件名称!

python去掉BOM头的方法

接口测试脚本实践记录

PHP去除BOM头的方法

PHP去除BOM头的方法

有关BOM头的一些知识