Apakah ada cara waras untuk menyorot kolom ke-4, ke-5, dan ke-6 dari kanan ukuran file ls -l
? Maksud saya adalah membuatnya mudah untuk membaca ukuran file baik itu dalam byte, KiBs, atau MiBs. Saya tahu tentang -h
bendera, tetapi saya menemukan bahwa harus menafsirkan huruf pada akhirnya lebih rumit daripada hanya melihat dan melihat panjang angka (besarnya). Ini adalah alasan yang sama mengapa mobil balap menggunakan dial analog bukan digital.
Shell target saya adalah Bash. Terima kasih.
EDIT: Saya mencari untuk menyoroti ribuan, sepuluh ribu, dan seratus ribu tempat kolom ukuran. Seperti ini: 123 456 789
lsl
mengatasinya dengan beberapa perubahan kecil. Bahkan, jawaban untuk pertanyaan ini akan dikombinasikan dengan teknik Anda dilsl
alias saya .grep --color -E -- "$(ls -rtl $@ | tail -n4)|$" <(ls -l $@ | perl -pe 's{^((?:\S+\s+){4}\d*)(\d{3})(?=\d{3})}{$1\e[31;1m$2\e[m}')
Jawaban:
Mungkin sesuatu seperti:
Untuk warna hitam (atau apa pun warna latar depan default pada terminal Anda) untuk ukuran dari 0 hingga 1023, hijau dari 1k ke 1M, kuning untuk 1M ke 1G, kemudian merah, ungu, biru.
Edit . Berdasarkan persyaratan yang diedit:
sumber
Cara termudah tanpa menginstal perangkat lunak tambahan adalah dengan
grep --color
apa pun yang Anda inginkan. Untuk menyorot filesize dari ls output Anda harus menjalankan sesuatu seperti itu (kadang-kadang akan menyoroti ukuran tidak hanya):Silakan lihat pertanyaan serupa di SO.
sumber