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

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

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

我的目标 shell 是 Bash。谢谢。

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

答案1

也许是这样的:

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'

对于尺寸从 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}'

答案2

无需安装任何其他软件的最简单方法就是grep --color随心所欲。要从 ls 输出突出显示文件大小,您应该运行类似的命令(有时它不仅会突出显示大小):

ls -l | grep --color '\s\+[0-9]\+\s'

否则请参考类似的问题就这样。

相关内容