katakanlah, saya telah mengikuti keluaran dari ls:
$ ls -lAhF /bin
-rwxr-xr-x 1 root root 905K Apr 10 2010 bash*
-rwxr-xr-x 3 root root 31K Dec 26 2011 bunzip2*
-rwxr-xr-x 1 root root 505K Nov 15 2010 busybox*
-rwxr-xr-x 3 root root 31K Dec 26 2011 bzcat*
lrwxrwxrwx 1 root root 6 Jun 24 2012 bzcmp -> bzdiff*
...
Saya mencari cara, bagaimana saya bisa mewarnai kolom kedua. Saya tahu cara menggunakan sed untuk mewarnai pola apa pun, tapi saya tidak tahu cara mewarnai kolom tertentu. Pada dasarnya, saya perlu memasukkan '\033[0;31m'
setelah ruang pertama dan '\033[0m'
infront dari ruang kedua. Atau mungkin ada cara yang jauh lebih elegan?
text-processing
colors
pengguna1968963
sumber
sumber
ls --color -l | sed -e $'s/ *[^ ]* /\033[0;31m&\033[0m/'
Jawaban:
Dengan GNU
grep
asalkan telah dibangun dengan dukungan PCRE :Dengan
sed
:Perhatikan bahwa menggunakan
setaf
asumsi terminal mendukung urutan pelarian warna ANSI, jadi Anda mungkin juga membuat kode yang sulit, yang akan membuatnya kurang bertele-tele juga. Di sini dengan sintaksksh93
(jugabash
danzsh
):Untuk menyamaratakan n th kolom:
Referensi
sumber
grep -P
fantastis. Terima kasih banyak.Sesuatu seperti ini?
Sunting: gunakan
tput
sub perintah yang tepat .sumber
$1
akan mematahkan perataan kolom.rmso
adalah membatalkansmso
meskipun (mode stand-out), bukanbold
. Pada banyak terminal (tput rmso
tidak tidak membatalkantput bold
).