4

我想要一个 bash 函数来计算显示时将使用的字符串宽度。因为在我的情况下,字符串可能包含一些宽字符(例如中文)。所以我不能只使用字符串的长度。

function getDisplayWidth ()
{
  ???
}

然后“abc”将返回 3,“前后”应返回 4 而不是 2。

4

2 回答 2

4

如果您的实现wc-L选择权,那似乎是正确的“事情”。(Coreutils 有,不知道有没有其他的。)

前任:

$ getw() { wc -L <<< "$1"; }
$ getw 前后
4
$ getw 前a后c
6
$ getw abc前后
7
$ getw "行书 / 行書"
11
于 2012-03-26T06:50:16.380 回答
0

试试wc -m。从 os x 手册页:

每个输入文件中的字符数被写入标准输出。如果当前语言环境不支持多字节字符,则这等效于 -c 选项。这将取消之前对 -c 选项的任何使用。

于 2012-03-26T06:42:04.513 回答