You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计环境变量中可打印字符的数量(支持终端链接场景)

解决办法

要统计这种带终端链接的变量里的可打印字符数,核心思路就是先把那些看不见的链接控制代码删掉,再数剩下的字符长度,而且这个方法对不带链接的变量也完全兼容。

方法一:sed + wc组合实现

先过滤掉变量里的终端链接控制序列,再统计剩余字符数:

echo -n "$foo" | sed -e 's/\x1b]8;;.*\x07//g' | wc -m

简单说明:

  • \x1b对应终端里的转义符\e,\x07对应响铃符\a,这俩是链接控制序列的首尾标记
  • sed会把所有夹在这俩标记中间的内容(包括标记本身)全部删除
  • echo -n是避免额外输出换行符,防止统计结果多算1个字符

方法二:awk一步到位处理

直接用awk删除控制序列后输出剩余内容的长度:

echo -n "$foo" | awk '{gsub(/\x1b]8;;.*\x07/, ""); print length($0)}'

测试效果

拿你提供的foo变量测试,这两个命令都会输出14;如果换成普通变量比如bar="Hello World",会输出11,不管变量里有没有链接都能正常统计。

内容的提问来源于stack exchange,提问作者Dan Neal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 06:55:21