为什么我没有得到grep和grep -v的所有行

时间:2016-04-26 12:45:06

标签: grep

为什么grep -v POLYGON删除的行数多于匹配grep POLYGON

的行数
$ cat BOUNDARIES3D_LV03.nt | grep -v POLYGON  | wc
    249     782  137001
$ cat BOUNDARIES3D_LV03.nt | grep POLYGON  | wc
   2441 2753697 51833677
$ cat BOUNDARIES3D_LV03.nt | wc
   73078 2975809 91746795

这是grep中的错误(使用:grep(GNU grep)2.23)还是我误解了什么?

更新 似乎grep在包含无效字符的第一个匹配行中止。

1 个答案:

答案 0 :(得分:0)

问题是grep在包含字节序列的第一行中止,该字节序列不计算当前编码中的字符。以下为我解决了这个问题:

export LC_ALL="en_US.UTF-8"