我想找到“e”的正确位置,以便以后能够切割它。但是,如果在其位置之前存在变音符号,为什么grep会返回不同的输出?
# echo "falle" | egrep -b -o 'e'
4:e
# echo "fälle" | egrep -b -o 'e'
5:e
# locale -a
C
C.UTF-8
de_DE.utf8
en_US.utf8
POSIX
帮助会很棒!
答案 0 :(得分:1)
-b
的{{1}}选项返回字节偏移量而不是字符偏移量
由于您的输入是egrep
,这是一个可变长度编码,并且ä字符不是标准ASCII字符,因此它使用UTF-8
个字节而不是2
个字节。
这就是字节偏移为1
而不是5
的原因。