有没有什么明智的方法可以突出显示文件大小右侧的第四、第五和第六列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'
否则请参考类似的问题就这样。