Grep - 寻找不可打印或更高范围的 ascii 字符

Grep - 寻找不可打印或更高范围的 ascii 字符

我们遇到一个问题,有人从某个元数据 xml 文件中的某个位置复制了一个字符串,其中包含 ascii 字符 239 (0xef)、191 (0xbf)、189 (0xbd)

我们修复了已知文件中的问题,但我想检查其他 xml 文件中是否存在类似问题。以下命令未找到任何内容

grep '[^[:print:]]' <filename>

以下命令看起来很有希望,但它添加了其他字符,例如“<”和“/”等。

grep -e "\W" <filename>

因为它是 xml 文件并且给定的字符串是元素文本,所以我不能使用 grep 的 -v 选项。

grep $'\xef' <filename>

上述命令确实标记了字符,但是太具体了,无法通过 30,000 个奇怪的文件来找到问题。

有什么方法可以使用 grep 命令来查找上述有问题的字符吗?对于有问题的字符串,大多数条目都是企业名称,不太可能有奇怪的 ascii 字符。

相关内容