`ls -l`のKiB範囲のさまざまな色

`ls -l`のKiB範囲のさまざまな色

ファイルサイズの右側にある4番目、5番目、6番目の列を強調表示する賢い方法はありますかls -l?私の意図は、ファイルサイズ(バイト、KiB、またはMiB)を読みやすくすることです。記号は理解しています-hが、数字の長さ(サイズ)だけを見るよりも最後の文字を解釈しなければならない方が面倒です。これはレースカーがデジタルダイヤルの代わりにアナログダイヤルを使用するのと同じ理由です。

私のターゲットシェルはBashです。ありがとうございます。

編集する:サイズ列について数千、数千、数十万を強調したいです。 「いいね!」: 123456話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}'

おすすめ記事