首页 > 代码库 > 一个批量移除BOM头的bash脚本

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

有时候我们的文件可能不需要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|dirPathremoveBomByFile() {    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    doneelif [ -e $1 ]; then    removeBomByFile $1else    echo $1 is not a file or directoryfi

 

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