尝试这个
echo 'Ü X' | awk '{printf("|% 2s|% 2s|\n", $1, $2)}'
对于 的输出|Ü| X|
。显然awk
计算的是字节长度,而不是 的字符长度Ü
,因此计数为 2,并且不需要用空格进行左填充,就像 一样X
。
是否可以awk
在计算模式字符长度%<count>s
printf
而不是字节长度的模式下运行?
存在同样的问题:bash
https : //superuser.com/a/1599024/345087。我希望答案不一样:“passthrough to libc printf”:-/printf
编辑而不是评论以获得更好的可见性:我没有使用但gawk
为我安装的任何版本的 ubuntu 22.04。我没有想到gawk
这些天可以安装任何东西:-/感谢您的详细回答。