一个批量移除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
时间: 2024-08-08 21:37:08

一个批量移除BOM头的bash脚本的相关文章

关于PHP的BOM头

一直用的是wamp的环境,php的版本还停留在5.3.php7都出来了,我连php5.6都还没用一把,很多相对于5.3时代的新函数和特性都还没体验到.但是碍于懒,决定装phpstudy切换到5.6的版本体验一把. 原先的wamp环境下mysql是没有登录密码的,但是phpstudy默认有个密码,所以我需要去我目前的项目框架配置项里改一下数据库的连接密码,心想就是改个密码嘛犯不着开sublime了,直接用记事本给改了.然后打开我的项目,首页出来了,没啥问题,再点登录,哎?验证码咋不出来了?用fir

使用Bash脚本进行进程性能监控

对一个Linux进程进行监控,使用Bash脚本实现. 使用ps命令对进程进行监控,使用循环加睡眠时间实现连续监控. 用法: psmonitor.sh -p [pid] -d [interval] -n [statistics count] 参数: -p 监控的进程ID -d 读性能数据间隔 -n 统计次数,达到该次数,自动退出 #!/bin/bash interval=0 count=0 pid="" while getopts "p:d:n:" arg do ca

Linux江湖10:Bash脚本编程语言中的美学与哲学

我承认,我再一次地当了标题党.但是不可否认,这一定是一篇精华随笔.在这一篇中,我将探讨Bash脚本语言中的美学与哲学.这不是一篇Bash脚本编程的教程,但是却能让人更加深入地了解Bash脚本编程,更加快速地学习Bash脚本编程.阅读这篇随笔,不需要你有Bash编程的经验,但一定要和我一样热衷于探索各种编程语言的本质,感悟它们的魅力. 其实早就想写关于Bash的东西了.前几天看到有博友在院子里发学习Bash的心得(这里http://www.cnblogs.com/viroyiheng/p/3988

Linux Bash脚本编程语言中的美学与哲学

我承认,我再一次地当了标题党.但是不可否认,这一定是一篇精华随笔.在这一篇中,我将探讨Bash脚本语言中的美学与哲学. 这不是一篇Bash脚本编程的教程,但是却能让人更加深入地了解Bash脚本编程,更加快速地学习Bash脚本编程. 阅读这篇随笔,不需要你有Bash编程的经验,但一定要和我一样热衷于探索各种编程语言的本质,感悟它们的魅力. 其实早就想写关于Bash的东西了. 我们平时喜欢对编程语言进行分类,比如面向过程的编程语言.面向对象的编程语言.函数式编程语言等等.在我心中,我认为Bash就是

PHP批量去除bom头代码

最近遇到一个问题编码问题,有点让人头痛,百度的方法好像不太好用,所以我自己也找了很久,现在总结一个小方法去除utf-8bom的方法,页面总会出现 }else{ $basedir = '.'; } $auto = 1; checkdir($basedir); function checkdir($basedir){ if ($dh = opendir($basedir)) { while (($file = readdir($dh)) !== false) { if ($file != '.'

批量去BOM头 遍历目录及子文件,文件夹 PHP源码

1 <?php 2 class KillBom 3 { 4     public static $m_Ext = ['txt', 'php', 'js', 'css'];//检查的扩展名 5     /** 6      * 传入一个任意文件 ,自动区分定义的扩展名,然后过滤bom 7      * @param string $file 8      * @return boolean 9      */ 10     public static  function killBomByFile

批量清除BOM头

批量清除BOM头 (2012-03-05 13:28:30) 转载▼ 标签: 杂谈   有些php文件由于不小心保存成了含bom头的格式而导致出现一系列的问题.以下是批量清除bom头的代码,复制代码,保存成.php文件,放在想执行的文件夹,运行就可以了 <?php if (isset ( $_GET ['dir'] )) { //config the basedir $basedir = $_GET ['dir']; } else { $basedir = '.'; } $auto = 1; c

批量去除文件的BOM头

<?php class KillBom{ //定义扩展名 public static $m_ext = ['txt','php','js','css']; /** * 传入一个任意文件,自动区分定义的扩展名,然后过滤 * @param string $file * @return boolean */ public static function killBomByFile($file) { //获取一个文件的扩展名 $ext = pathinfo($file,PATHINFO_EXTENSIO

IDEA UTF-8 中含 bom 运行报错 批量处理将bom移除

将eclipse中的项目导入到idea或者as的环境中,遇到UTF-8含有BOM编码报错的问题,之前每次遇到这样的问题都特么用EditPlus一个一个的转换,感觉太烦了,后面就自己写了一个批量处理的工具,希望能帮助大家. 下载: