`ls -l` 中 KiB 范围的不同颜色

dot*_*hen 10 ls bash

有没有什么理智的方法可以突出显示文件大小右侧的第 4、5 和 6 列ls -l?我的目的是让读取文件大小变得容易,无论是字节、KiB 还是 MiB。我确实了解-h标志,但我发现必须解释末尾的字母比仅查看数字的长度(大小)更麻烦。这与赛车使用模拟表盘而不是数字表盘的原因相同。

我的目标 shell 是 Bash。谢谢。

编辑:我希望突出显示大小列的千位、万位和十万位。像这样:123 456 789

Sté*_*las 7

也许是这样的:

ls -l | perl -pe 'BEGIN{@color=(0,2,3,1,5,4)}
  s{((?:\S+\s+){4})(\d+)}{"$1\e[3" . 
  $color[log($2||1)/log(2)/10] . "m$2\e[m"}e'
Run Code Online (Sandbox Code Playgroud)

对于黑色(或终端上的任何默认前景色),尺寸从 0 到 1023,绿色从 1k 到 1M,黄色用于 1M 到 1G,然后是红色、紫色、蓝色。

编辑。根据您编辑的要求:

ls -l | perl -pe 's{^((?:\S+\s+){4}\d*)(\d{3})(?=\d{3})}
                   {$1\e[31;1m$2\e[m}'
Run Code Online (Sandbox Code Playgroud)