我尝试使用perl-regex模式,因为我想匹配可能的跨区模式,如:
...
text text Name
Surname text text
...
如果我想匹配“Name Surname”。
因此使用<stdout> | grep -Pzo "(?s)Name.Surname"
对ASCII非常有用,但如果我想在utf-8编码文件上尝试相同的操作,我会得到:
Binary file (standard input) matches
当我用它喂grep而没有结果。我也试过常规文件grep -Pzo "(?s)Name.Surname" utf-8.txt
,但它是相同的
没有perl-regex开关的OTOH grep在同一个流上按预期工作
那么有没有可以解决这个问题的开关呢?
答案 0 :(得分:1)
您可以使用grep
或-a
选项告诉--binary-files=text
将其视为文本文件:
... | grep -aPzo "(?s)Name.Surname"
grep -aPzo "(?s)Name.Surname" utf-8.txt