`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}'

答え2

追加のソフトウェアをインストールせずにこれを行う最も簡単な方法は、grep --color単に使用することです。 ls出力でファイルサイズを強調表示するには、次のコマンドを実行する必要があります(時にはサイズよりも多くを強調表示することもあります)。

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

そうでなければ参照してくださいエマルジョンそれはすべてです。

関連情報