Untuk mewarnai output teks dari perintah, seseorang dapat mencoba menyalurkan output dari perintah ke sed, seperti berikut:
perintah anda | sed -e 's/FAIL/^[[01;31mFAIL^[[00m/g' -e 's/SUCCESS/^[[01;32mSUCCESS^[[00m/g'
Seseorang juga dapat menempatkan aturan substitusi tersebut ke dalam file teks (mis. colorize.sed) dan menggunakan yang berikut:
perintah anda | sed -f mewarnai.sed
Ini akan memungkinkan warna yang berbeda untuk ditetapkan ke string pencocokan yang berbeda. Perhatikan bahwa dalam contoh saya, '^[' berarti karakter escape, bukan karat yang diikuti dengan tanda kurung siku. Karakter escape dapat dimasukkan ke dalam aturan dengan mengetik Ctrl-V lalu menekan tombol escape.
Warna/efek yang tersedia untuk kode tty ini adalah sebagai berikut:
Warna latar depan:Hitam=30, Biru=34, Cyan=36, Hijau=32, Ungu=35, Merah=31, Putih=37, Kuning=33
Warna latar belakang:Hitam=40, Biru=44, Cyan=46, Hijau=42, Ungu=45, Merah=41, Putih=47, Kuning=43
Efek:Normal=00, Tebal=01, Redup=02, Digarisbawahi=04, Berkedip=05, Terbalik=07, Tersembunyi=08
Ini juga dapat digabungkan dengan titik koma seperti yang saya lakukan (yaitu 01;31 untuk mendapatkan warna merah tebal).
Perhatikan bahwa kode '^[00m' diperlukan untuk menonaktifkan warna/efek sebelumnya, jika tidak, warna/efek akan tetap ada setelah string yang cocok. Perhatikan juga bahwa beberapa efek tidak berfungsi (atau berfungsi seperti yang saya jelaskan) dengan beberapa emulator terminal.
Saya harap saya tidak hanya mengulangi apa yang telah dikatakan orang lain, karena saya tidak membaca keseluruhan utas diskusi.
Mungkin lebih mudah untuk mewarnai kata-kata itu sendiri, daripada meminta terminal untuk mewarnainya untuk Anda. Jika Anda tidak dapat mengedit skrip yang membuat keluaran, dapatkah Anda memfilternya melalui yang lain?
Pada akhir skala yang paling mungkin tersedia, Anda dapat menyalurkan output Anda melalui grep
:
tail -F logfile | grep --color -P "FAIL|"
Ini cocok dengan "GAGAL" atau "", dan menyorot bagian string yang cocok.
Anda selanjutnya dapat menggunakan sesuatu yang lebih khusus, seperti yang dijelaskan dalam entri blog ini, misalnya.