Pythontr

husonet | Tarih: 29.12.2014

grep çıktılarını renklendirme

grep eşleşmeleri renkli çıktı olarak verme yeteneğine sahiptir.

grep eşleşen verileri renkli olarak verebilir, fakat varsayılan olarak bu özelliği kapalıdır.


grep abc deneme.txt 
abcdef

Kullanabileceğiniz 3 renk seçeneği mevcuttur
  • --color=auto
  • --color=always
  • --color=never

--color=always, Her zaman eşleşmelerde renk kullan,
grep --color=always abc deneme.txt 

[color=#FF0000]abc[/color]def
Çıktı üzerinde sayfalamak ve cursor le gezmek isterseniz.
grep --color=always  abc  deneme.txt | less
ESC[01;31mabcESC[00mdef
(END)

Fakat yukarıdaki kod da eşleşen kısımlarda algınızı bozacak değişiklikler göreceksiniz sebebi ise denetim karakterlerini kullanmasındandır, bunun önüne geçmek için less -R parametresi ile kullanmalısınız.


[code]grep --color=always  abc  deneme.txt | less -R

[color=#FF0000]abc[/color]def
more ile kullanım örneği
grep --color=always abc deneme.txt | more 

[color=#FF0000]abc[/color]def

Başka bir sorunlu senaryoda grep ile eşleşen çıktıları bir dosyaya kaydetmek istediğimizde oluşur. Çıktı dosyası yukarıda belirtilen denetim karakterlerini içericektir.


grep --color=always abc deneme.txt > cikti.txt
vim cikti.txt
^[[01;31m^[[Kabc^[[m^[[Kdef

color=auto, çıktı bir komuta taşınması ya da dosyaya aktarılması sürecine göre rengi görüntüleler.


Son olarak, grep için ortam değişkeni renk parametresi belirtebilirsiniz. Ardından, komut satırına girmeniz gerekmez.


export GREP_OPTIONS='--color=always' 

Renkli grepler dileriz :)