我想要一个bash函数来计算显示时会出现的字符串宽度。 因为在我的情况下,String可能包含一些广泛的特征(例如中文)。所以我不能只使用字符串的长度。
function getDisplayWidth ()
{
???
}
然后“abc”将返回3 并且“前后”应该返回4而不是2。
答案 0 :(得分:4)
如果wc
的实施具有-L
选项,那么这似乎是正确的“事物”。 (Coreutils拥有它,不确定是否有其他人这样做。)
例如:
$ getw() { wc -L <<< "$1"; }
$ getw 前后
4
$ getw 前a后c
6
$ getw abc前后
7
$ getw "行书 / 行書"
11
答案 1 :(得分:0)
试试wc -m
。从os x手册页:
每个输入文件中的字符数写入标准 输出。如果当前语言环境不支持多字节字符, 这相当于-c选项。这将取消任何先前的 使用-c选项。