在 N 个可打印字符后截断彩色线条

Truncate colored lines after N printable chars

我住在一个 tmux 会话中。在浏览和修改 git 分支时,我通常会在侧窗格中跟踪我最近的历史记录,别名会扩展为:

watch -cn 0.5 'git log --graph --oneline --all --color=always --decorate'

问题:长线被缠绕并破坏了可爱的彩色图形,使我不稳定!

解决方法

问题: 是否有任何标准工具可以在 N 个可打印字符后截断行?

我会避免使用自己编写的类似 cut 的解决方案,主要是因为可移植性。

找到的解决方案:

alias gw='watch -cn 0.5 "git log --graph --oneline --all --color=always --decorate | grep -Eo \"^(([[:cntrl:]]\[[0-9;]{,4}m)*[[:print:]]){,$COLUMNS}\""'