grep for(curly | microsoft | smart)引号

Dav*_*ith 4 regex grep

我有一个巨大的文件夹,里面装满了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)

dal*_*lle 5

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存储,因此您可以直接比较字节序列.


neu*_*ert 5

您可以找到包含如此提到的 UTF-8 序列 dalle 的文件:

grep -r -P "\xE2\x80\x9C" .
Run Code Online (Sandbox Code Playgroud)

-r使它递归并-P告诉 grep 使用 Perl 兼容的正则表达式。