我想要一个 bash 函数来计算显示时将使用的字符串宽度。因为在我的情况下,字符串可能包含一些宽字符(例如中文)。所以我不能只使用字符串的长度。
function getDisplayWidth ()
{
???
}
然后“abc”将返回 3,“前后”应返回 4 而不是 2。
如果您的实现wc
有-L
选择权,那似乎是正确的“事情”。(Coreutils 有,不知道有没有其他的。)
前任:
$ getw() { wc -L <<< "$1"; }
$ getw 前后
4
$ getw 前a后c
6
$ getw abc前后
7
$ getw "行书 / 行書"
11
试试wc -m
。从 os x 手册页:
每个输入文件中的字符数被写入标准输出。如果当前语言环境不支持多字节字符,则这等效于 -c 选项。这将取消之前对 -c 选项的任何使用。