`ls -l`의 KiB 범위에 대한 다양한 색상

`ls -l`의 KiB 범위에 대한 다양한 색상

파일 크기 오른쪽에 있는 네 번째, 다섯 번째, 여섯 번째 열을 강조 표시하는 현명한 방법이 있습니까 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'

그렇지 않으면 참조하십시오유제그게 다야.

관련 정보