我有一个文件:
To jest d?ugi string z wieloma polskimi literami ?ó???? kodowany w UTF8,
?eby
by?o ?mieszniej, haha.
?
a
Run Code Online (Sandbox Code Playgroud)
示例gawk:
gawk '{printf "%-80s %-s\n", $0, length}' file
Run Code Online (Sandbox Code Playgroud)
在gawk中,我得到了正确的结果:
To jest d?ugi string z wieloma polskimi literami ?ó???? kodowany w UTF8, 73
?eby 5
by?o ?mieszniej, haha. 22
? 1
a 1
Run Code Online (Sandbox Code Playgroud)
示例mawk:
mawk '{printf "%-80s %-s\n", $0, length}' file
To jest d?ugi string z wieloma polskimi literami ?ó???? kodowany w UTF8, 80
?eby 6
by?o ?mieszniej, haha. 24
? 2
a 1
Run Code Online (Sandbox Code Playgroud)
由于mawk获得与gawk相同的结果?
Ed *_*ton 12
mawk是一个功能最小的awk,专为执行功能而设计.你不应该期望它的行为与gawk或POSIX awk完全相同.如果你打算使用mawk,你需要获得描述IT行为方式的mawk手册,不要依赖描述其他awks行为的任何其他文档.
恕我直言,格式化字符串没有正确的结果,%-s因为没有指定一个宽度来对齐它是没有意义的.还有什么不同的解释length在它自己的意思-这可能是短期的手length($0),也可能是在非POSIX awk的别的东西,有可能甚至在一些非POSIX awk的长度的功能,所以它可能需要那是一个未定义的变量名.任何给定的awk如何处理非英文字符?
正如我所说 - 如果你打算使用非POSIX awk,你需要检查手册中的所有血腥细节......
| 归档时间: |
|
| 查看次数: |
7645 次 |
| 最近记录: |