一个批量移除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|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