出于调试目的,我需要递归地在目录中搜索所有以UTF-8字节顺序标记(BOM)开头的文件.我目前的解决方案是一个简单的shell脚本:

find -type f |
while read file
do
    if [ "`head -c 3 -- "$file"`" == $'\xef\xbb\xbf' ]
    then
        echo "found BOM in: $file"
    fi
done

或者,如果你更喜欢简短、不可读的一行:

find -type f|while read file;do [ "`head -c3 -- "$file"`" == $'\xef\xbb\xbf' ] && echo "found BOM in: $file";done

它不适用于包含换行符文件名, 但无论如何,这样的文件都不是人们所期望的.

有没有更短或更优雅的解决方案?

是否有任何有趣的文本编辑器或文本编辑器宏?

推荐答案

那么这个简单的命令呢?它不仅可以查找而且可以清除讨厌的BOM表

find . -type f -exec sed '1s/^\xEF\xBB\xBF//' -i {} \;

我喜欢《寻找》:)

Warning以上将有modify个包含这三个字符的二进制文件.

如果只想显示BOM表文件,请使用此文件:

grep -rl $'\xEF\xBB\xBF' .

Php相关问答推荐

在php中有没有办法比较两个包含相同枚举类型的枚举数组

在Laravel Eloquent中实现一对多关系

根据WooCommerce中的客户计费国家/地区更改产品价格

带Redhat php curl的http_code 0

在Laravel中创建辅助函数时的约定

如果在 APIPlatform 3.1 中的同一资源上使用处理器,Messenger 将无法工作

调用未定义的方法 mysqli::execute_query()

PHP 中使用 JSON 的自定义会话处理程序会因错误而 destruct 会话

PHP 在数组中搜索值

无法读取某些 WordPress 主机上的 cookie

计算数组中连续值的数量

WooCommerce – 在新订单邮箱通知中显示产品分类计数

PHP文件如何从CSS执行

Shopware 6.4.20店铺激活问题

ACF 更新字段功能不更新 WordPress 中的任何数据

在 PHP 中验证签名

PHP preg_replace括号和方括号内的所有逗号

Laravel 8:会话不适用

我需要获取传递到这个数组中的数据,但我没有得到它,因为在 Laravel 中数组是这样出现的

如何使 Wordpress Woocommerce 自定义输入字段成为必填字段