fgrep不计算带有重音字母的行

fgrep不计算带有重音字母的行,grep,Grep,我在fgrep中发现bug的可能性很小,所以我打赌我弄错了什么。我正在用计算机计算VCF文件中的地址数 fgrep FN: Contacts.vcf| wc -l 快速查找NV(全名)字段的数量。 我注意到,与我下一本书中的计数相比,我缺少一本。 我找到了一个叫Jurriën的朋友的电话。 如果我留下他的名字,他就不算线了 FN:Jurriën Somelastname 如果我移除ëfgrep,则会计算线数 FN:Jurrin Somelastname 这是一个简单的DOS风格编码的文本

我在fgrep中发现bug的可能性很小,所以我打赌我弄错了什么。我正在用计算机计算VCF文件中的地址数

fgrep FN: Contacts.vcf| wc -l 
快速查找NV(全名)字段的数量。 我注意到,与我下一本书中的计数相比,我缺少一本。 我找到了一个叫Jurriën的朋友的电话。 如果我留下他的名字,他就不算线了

FN:Jurriën Somelastname
如果我移除ëfgrep,则会计算线数

FN:Jurrin Somelastname
这是一个简单的DOS风格编码的文本文件,直接来自Nextcloud服务器。
然而,fgrep将其视为二进制文件。因此,
fgrep-a
起作用。这是预期的行为吗?

这取决于grep的版本。尤其是较旧的grep版本,将带有0x80-0xff字节的文件/行(例如,我假设的UTF-8)标记为“二进制”而不是文本。我在使用BSD grep 2.5.1和GNU grep 3.3时没有问题。但令人恼火的是,使用grep命令搜索Unicode文件/输入的shell脚本是不可移植的,这取决于grep的版本。尤其是较旧的grep版本,将带有0x80-0xff字节的文件/行(例如,我假设的UTF-8)标记为“二进制”而不是文本。我在使用BSD grep 2.5.1和GNU grep 3.3时没有问题。但令人恼火的是,使用grep命令搜索Unicode文件/输入的shell脚本不可移植。