我有一个巨大的文件夹,里面装满了xml文件,其中一些文件可能会破坏,因为它们包含那些卷曲的引号,即Microsoft Word引号,即智能引号.我只是想快速检查一下,看看我遇到了什么.有谁知道如何为他们grep所以我很容易找到罪犯?
编辑
这是一个简化的例子.
<?xml version="1.0" encoding="UTF-8"?>
<items>
<item>Pretend this is a curly quote: '</item>
</items>
Run Code Online (Sandbox Code Playgroud)
Curly引号具有以下Unicode代码点和UTF-8序列:
Name CodePoint UTF-8 sequence ---- --------- -------------- LEFT SINGLE QUOTATION MARK U+2018 0xE2 0x80 0x98 RIGHT SINGLE QUOTATION MARK U+2019 0xE2 0x80 0x99 SINGLE LOW-9 QUOTATION MARK U+201A 0xE2 0x80 0x9A SINGLE HIGH-REVERSED-9 QUOTATION MARK U+201B 0xE2 0x80 0x9B LEFT DOUBLE QUOTATION MARK U+201C 0xE2 0x80 0x9C RIGHT DOUBLE QUOTATION MARK U+201D 0xE2 0x80 0x9D DOUBLE LOW-9 QUOTATION MARK U+201E 0xE2 0x80 0x9E DOUBLE HIGH-REVERSED-9 QUOTATION MARK U+201F 0xE2 0x80 0x9F
XML通常以UTF-8存储,因此您可以直接比较字节序列.
您可以找到包含如此提到的 UTF-8 序列 dalle 的文件:
grep -r -P "\xE2\x80\x9C" .
Run Code Online (Sandbox Code Playgroud)
这-r使它递归并-P告诉 grep 使用 Perl 兼容的正则表达式。