• shell 去除utf8文件中bom头的方法


    原文地址:http://blog.csdn.net/fdipzone/article/details/78885647

    本文介绍使用shell命令,批量去除utf8文件中bom头的方法。utf8的bom头由xEF,xBB,xBF组成,带bom的文件在使用过程中,某些软件打开会出现乱码等异常,而要把文件重新另存为utf8无bom比较麻烦,因此直接使用shell命令实现比较方便。 

    1.去除utf8文件中bom头

    首先创建一个utf8带bom头的文件,随便插入些内容,例如test.txt

    使用命令xxd查看此文件的16进制编码

    xxd test.txt
    00000000: efbb bfe6 b58b e8af 95e6 9687 e4bb b60a  ................

    可以看到头三个字节的16进制为 xEF xBB xBF 



    我们可以使用shell的sed命令实现utf8 bom头去除

    sed -i 's/^xEFxBBxBF//g' test.txt

    上面命令表示,把xEFxBBxBF开头的字符替换为空。

    执行完成后再使用xxd命令查看文件16进制编码

    xxd test.txt
    00000000: e6b5 8be8 af95 e696 87e4 bbb6 0a         .............

    可以看到utf8 bom头被去除。 

    2.批量去除文件夹中utf8文件中的bom头

    我们可以使用grep来查看哪些文件存在bom头,然后对这些文件执行替换。

    grep -r -i -l $'^xEFxBBxBF' . | xargs sed -i 's/^xEFxBBxBF//g'

    -r 在当前目录及其子目录下搜索 
    -i 忽略大小写的不同,所以大小写视为相同 
    -l 查询多文件时只输出包含匹配字符的文件名 
      
    如果不需要递归多层目录,只处理当前目录

    grep -i -l $'^xEFxBBxBF' * | xargs sed -i 's/^xEFxBBxBF//g'



    注意:mac中的sed命令有些不同,因此建议安装gnu-sed来处理

    安装gnu-sed

    brew install gnu-sed

    设置默认路径

    export PATH中加入/usr/local/opt/gnu-sed/libexec/gnubin:


    原文地址: http://blog.csdn.net/fdipzone/article/details/78885647
  • 相关阅读:
    在VS2010下,用C语言编写pthread多线程程序的配置
    java帮助文档系列JDK1.5 JDK1.6 JDK1.7官方中英完整版下载
    瑜伽练习day02----适合练习瑜伽时听的歌曲
    瑜伽练习day01----瑜伽练习的好处,坏处
    抛出错误Debug Assertion Failed!
    stringstream的基本用法
    AWS中S3的Bucket桶访问策略
    AWS中SQS的几项使用注意
    AWS在.Net中连接数据库时发生认证错误的解决办法
    .Net捕捉配置或程序错误
  • 原文地址:https://www.cnblogs.com/zhylog/p/8548792.html
Copyright © 2020-2023  润新知