我知道如何在 bash 脚本中为字符串着色,并计算字符串的字符数。我不知道如何计算带有\033[0;32m
(红色)和\033[0m
(透明色)等颜色标记的字符串。示例如下:
>> echo "This is a string" | wc -c
17
>> echo -e "\033[0;32mThis is a string\033[0m" | wc -c
28
>> echo "\033[0;32mThis is a string\033[0m" | wc -c
34
任何帮助表示赞赏。
一种解决方案是使用
sed
删除多余的字符,并计算剩下的内容。该模式还可以识别许多其他序列。如果您只对删除颜色感兴趣,则将 更改
.
为m
。就我个人而言,我不会
| wc -c
在脚本中使用,能够剥离颜色序列作为独立实用程序可能很有用,正如@waltinator 在评论中所要求的那样