awkåäöumlaut-chars的长度为2

Sup*_*nic 5 string macos awk diacritics

我使用awk(mac os x)只打印n个字符和更长的行.

如果我在文本文件(strings.txt)上尝试它,如下所示:

four
foo
bar
föö
bår
fo
ba
fö
bå
Run Code Online (Sandbox Code Playgroud)

我运行这个awk脚本:

awk ' { if( length($0) >= 3 ) print $0 } ' <strings.txt 
Run Code Online (Sandbox Code Playgroud)

输出是:

four
foo
bar
föö
bår
fö
bå
Run Code Online (Sandbox Code Playgroud)

(不应该打印最后两行).似乎包含变音字符(å,ä,ö...)的单词计为两个字符.

(输入文件以UTF8格式保存.)

Dim*_*lov 3

尝试设置您的区域设置:

LC_ALL=en_US.UTF-8 awk 'length >= 3' infile
Run Code Online (Sandbox Code Playgroud)

将 en_US.UTF-8 更改为您正确的区域设置。