Grep'in rengini değiştirme


23

Bir şey öğrendim, sonuç her zaman kırmızıdır. Komutun grep --colorsonucu varsayılan olarak kırmızı olan renkli yazdırdığını biliyorum . Rengi değiştirebilir miyim?

Yanıtlar:


18

Vurgu rengini, şöyle ayarlayabileceğiniz grepbir ortam değişkeni kullanarak değiştirebilirsiniz GREP_COLORS:

export GREP_COLORS='ms=01;31'

Sayısal seçenekler

Rakamlar metni biçimlendirebilir, ön plan rengini veya arka plan rengini değiştirebilir veya yazı tiplerini değiştirebilir.

Tüm GREP_COLORSseçeneklerin başlangıç ​​koşulları , terminalin varsayılan metin stili, yazı tipi ve renkleridir. Bunlardan herhangi birinin sıfırlanması, hiçbirinin varsayılanlarına değil, terminalin varsayılanlarına geri dönecektir grep.

efsane

  • ;ʙ;- ;Birleştirmek istediğiniz sayısal seçenekleri ayıran (örneğin kalın sarı-siyah metin birleştirir seçenekleri 1, 33ve 40içine 1;33;40)
  • +ᴇꜰꜰᴇᴄᴛ- Bu sayısal seçeneği kullandığınızda ᴇꜰꜰᴇᴄᴛ açık
  • -ᴇꜰꜰᴇᴄᴛ- Bu sayısal seçeneği kullandığınızda ᴇꜰꜰᴇᴄᴛ kapanır
  • color, green, cyanVe grey- "Metin biçimlendirme" bölümünde, bu ön plan rengi bakın
  • colors - "Metin stili" bölümünde, bu hem ön plan rengini hem de arka plan rengini belirtir
  • this color- "Ön plan renkleri" bölümünde, bu ön plan rengini ifade eder; "Arka plan renkleri" bölümünde bu, arka plan rengini ifade eder.

Metin tasarımı

Boş bir dize veya 0sıfırlar tüm metin stili ve sıfırlar varsayılan her iki renklerini ama değil varsayılan yazı tipini sıfırlayın.

┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ GNOME Terminal          ┃ xterm                   ┃ non-GUI TTY           ┃
┡━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━┩
│     │ «reset style+colors»    │ «reset style+colors»    │ «reset style+colors»  │
│   0 │ «reset style+colors»    │ «reset style+colors»    │ «reset style+colors»  │
├─────┼─────────────────────────┼─────────────────────────┼───────────────────────┤
│   1 │ +bold, +brighter color  │ +bold, +brighter color  │ +brighter color,      │
│     │                         │                         │   -forced grey        │
│   2 │ +fainter color          │ +fainter color          │ +forced grey          │
│   3 │ +italic                 │ +italic                 │ +forced green         │
│     │                         │                         │   ● overrides 2 and 4 │
│   4 │ +underline              │ +underline              │ +forced cyan          │
│     │                         │                         │   ● overrides 2       │
│   5 │ «no effect»             │ +blink                  │ «no effect»           │
│   7 │ +invert colors          │ +invert colors          │ +invert colors        │
│   8 │ +invisible              │ +invisible              │ «no effect»           │
│     │                         │   ● underline appears   │                       │
│   9 │ +strikethrough          │ +strikethrough          │ «no effect»           │
├─────┼─────────────────────────┤                         ├───────────────────────┤
│  21 │ -bold, -brighter color, │ +double underline       │ -brighter color,      │
│     │   -fainter color        ├─────────────────────────┤   -forced grey        │
│  22 │ -bold, -brighter color, │ -bold, -brighter color, │ -brighter color,      │
│     │   -fainter color        │   -fainter color        │   -forced grey        │
│  23 │ -italic                 │ -italic                 │ -forced green         │
│  24 │ -underline              │ -underline,             │ -forced cyan          │
│     │                         │   -double underline     │                       │
│  25 │ «no effect»             │ -blink                  │ «no effect»           │
│  27 │ -invert colors          │ -invert colors          │ -invert colors        │
│  28 │ -invisible              │ -invisible              │ «no effect»           │
│  29 │ -strikethrough          │ -strikethrough          │ «no effect»           │
└─────┴─────────────────────────┴─────────────────────────┴───────────────────────┘

Ön plan renkleri

┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ GNOME Terminal          ┃ xterm                   ┃ non-GUI TTY           ┃
┡━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━┩
│  39 │ «reset this color»      │ «reset this color»      │ «reset this color»    │
├─────┼─────────────────────────┼─────────────────────────┼───────────────────────┤
│  30 │ very dark grey          │ black                   │ black                 │
│  31 │ dull red                │ red                     │ light red             │
│  32 │ dull green              │ light green             │ light green           │
│  33 │ dull yellow             │ yellow                  │ yellow                │
│  34 │ greyish blue            │ dark blue               │ sky blue              │
│  35 │ dull purple             │ purple                  │ purple                │
│  36 │ teal                    │ cyan                    │ cyan                  │
│  37 │ light grey              │ light grey              │ light grey            │
├─────┼─────────────────────────┼─────────────────────────┼───────────────────────┤
│  90 │ dark grey               │ dull grey               │ dull grey             │
│  91 │ red                     │ bright red              │ bright red            │
│  92 │ lime green              │ bright green            │ bright green          │
│  93 │ yellow                  │ bright yellow           │ pure yellow           │
│  94 │ light greyish blue      │ dull blue               │ deep blue             │
│  95 │ light purple            │ magenta                 │ magenta               │
│  96 │ cyan                    │ bright cyan             │ bright cyan           │
│  97 │ off white               │ white                   │ white                 │
├─────┴──────┬──────────────────┴─────────────────────────┴───────────────────────┤
│ 38;2;ʀ;ɢ;ʙ │ replace ʀ, ɢ, and ʙ with RGB values from 0 to 255                  │
│            │   for closest supported color (non-GUI TTY has only 16 colors!)    │
│ 38;5;ɴ     │ replace ɴ with value from 256-color chart below                    │
│            │   for closest supported color (non-GUI TTY has only 16 colors!)    │
└────────────┴────────────────────────────────────────────────────────────────────┘

Arka plan renkleri

GUI olmayan TTY'nin daha parlak bir arka plan rengi serisi sağlamadığını unutmayın.

┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ GNOME Terminal          ┃ xterm                   ┃ non-GUI TTY           ┃
┡━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━┩
│  49 │ «reset this color»      │ «reset this color»      │ «reset this color»    │
├─────┼─────────────────────────┼─────────────────────────┼───────────────────────┤
│  40 │ very dark grey          │ black                   │ black                 │
│  41 │ dull red                │ red                     │ light red             │
│  42 │ dull green              │ light green             │ light green           │
│  43 │ dull yellow             │ yellow                  │ yellow                │
│  44 │ greyish blue            │ dark blue               │ sky blue              │
│  45 │ dull purple             │ purple                  │ purple                │
│  46 │ teal                    │ cyan                    │ cyan                  │
│  47 │ light grey              │ light grey              │ light grey            │
├─────┼─────────────────────────┼─────────────────────────┼╶╴╶╴╶╴╶╴╶╴╶╴╶╴╶╴╶╴╶╴╶╴╶┤
│ 100 │ dark grey               │ dull grey               │ black                 │
│ 101 │ red                     │ bright red              │ light red             │
│ 102 │ lime green              │ bright green            │ light green           │
│ 103 │ yellow                  │ bright yellow           │ yellow                │
│ 104 │ light greyish blue      │ dull blue               │ sky blue              │
│ 105 │ light purple            │ magenta                 │ purple                │
│ 106 │ cyan                    │ bright cyan             │ cyan                  │
│ 107 │ off white               │ white                   │ light grey            │
├─────┴──────┬──────────────────┴─────────────────────────┴───────────────────────┤
│ 48;2;ʀ;ɢ;ʙ │ replace ʀ, ɢ, and ʙ with RGB values from 0 to 255                  │
│            │   for closest supported color (non-GUI TTY has only 8 colors!)     │
│ 48;5;ɴ     │ replace ɴ with value from 256-color chart below                    │
│            │   for closest supported color (non-GUI TTY has only 8 colors!)     │
└────────────┴────────────────────────────────────────────────────────────────────┘

256 renkli grafik

256 renkli grafik

Yukarıdaki grafik, CMG Lee ve ark.'nın hazırladığı "ANSI kaçış kodu, 8 bit renk" başlıklı Wikipedia'da yayınlanan içeriğin ekran görüntüsüdür . 24 Şubat 2016 ve sonrasında , hem CC BY-SA 3.0 telif hakkı lisansı hem de GFDL telif hakkı lisansı altında yazarlar tarafından lisanslanmıştır .

Yukarıdaki 256 renkli grafikteki renkler aşağıdaki gibi kullanılabilir:

  • 38;5;ɴ- ön plan rengini terminalin desteklediği en yakın renge değiştirmek için yukarıdaki çizelgedeki belirli bir rengin değerini ɴ ile değiştirin
  • 48;5;ɴ- arka plan rengini terminalin desteklediği en yakın renge değiştirmek için yukarıdaki çizelgedeki belirli bir rengin değerini ɴ ile değiştirin

Örneğin 38;5;214;48;5;30, ön 214planı renkli ve arka planı renkli olarak ayarlayarak, 30onu destekleyen terminallerde deniz mavisi üzerinde turuncu bir sonuç verir.

Tüm terminallerin 256 rengi de desteklemediğine dikkat edin, bu nedenle seçilen rengin kullanılmayabileceğini anlamak önemlidir. Sadece seçilene en yakın desteklenen renk kullanılacaktır.

Örneğin, GUI dışı TTY yalnızca ön plan için temel 16 rengi ve arka plan için temel 8 rengi destekler, bu nedenle kullanılan en yakın renkler beklediğiniz gibi olmayabilir. Örnek olarak, yukarıdaki deniz mavisi portakal rengi seçimi ( 38;5;214;48;5;30) GUI TTY dışı ürünlerde siyah renkte sarı renkte görünür çünkü bunlar en yakın desteklenen renklerdir.

Yazı

10varsayılan yazı tipidir. 11aracılığıyla 20potansiyel alternatif yazı tipi (vardır 20genellikle anlamına gelir , bir 𝕱𝖗𝖆𝖐𝖙𝖚𝖗 yazı bunu destekleyen nadir terminallerde). Yalnızca 10ve 12GUI olmayan TTY'de varsayılan olarak var gibi görünmektedir ve GNOME Terminali'nde veya hiçbiri yok xterm.

grepçıkmadan önce yazı tiplerini düzgün bir şekilde değiştirmez, bu nedenle kabuk geri döndükten resetsonra istenmeyen bir yazı tipine sıkışırsanız çalıştırın grep.

┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ GNOME Terminal          ┃ xterm                   ┃ non-GUI TTY           ┃
┡━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━┩
│  10 │ «no effect»             │ «no effect»             │ «reset font»          │
│  11 │ «no effect»             │ «no effect»             │ -messed up font       │
│  12 │ «no effect»             │ «no effect»             │ +messed up font       │
└─────┴─────────────────────────┴─────────────────────────┴───────────────────────┘

"Sayısal seçenekler" bölümü kaynaklar:
        Vikipedi'de "ANSI çıkış kodu, SGR (Seçkin Grafik)) parametreleri"
        ● GNOME Terminalinde deneysel doğrulama xtermve Ubuntu 16.04'te GUI modu olmayan TTY


<code> GREP_COLORS </code> ayarlandıktan sonra renk değişikliği örnekleri

Varsayılan değeri GREP_COLORSDİR'ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36'

Kabul edilen her unsurun anlamı GNU.org'un el kitabındaGREP_COLORS kontrol edilebilir .

Tamamlama için ve @damadam'ın işaret ettiği gibi , değişiklikleri kaydetmek için eklemek exportzorundasınız .bashrc.

İlgili:

Çok renkli Grep

Her bir grep için farklı renkler kullanın


2
Orada çok müsait daha renk ve biçimlendirme seçenekleri, deneyin <<<hello GREP_COLORS='ms=5;104' grep '.*'bir kez! Kodların bir listesini burada bulabilirsiniz, örneğin burada (bölüm 6).
tatlı

1
256 renk tablosundaki renk değerlerini GREP_COLORS ile nasıl kullanıyorsunuz?
Sebastian Stark

1
@SebastianStark Ön plan için 38;5;ɴ, ɴ renginin değerlerinden biriyle değiştirilmesi gereken yerlerde kullanın . Arka plan 48;5;ɴiçin aynı şekilde kullanın . Mesela, 38;5;214;48;5;30deniz mavisi üzerine portakal vermelisin. Olmazsa, terminaliniz 256 rengi desteklemeyebilir. Örneğin, GUI olmayan TTY, sadece ön plan için 16 rengi ve arka plan için 8 rengi destekler ve deniz mavisi üzerinde siyah olan sarı renkte, turuncuya en yakın olan 16 ve 8 renklerinden ön plan ve arka plan renklerini seçer.
Chai T. Rex

1
@ ChaiT.Rex thx, sadece iyi çalışıyor. Yine de cevabından çok açık değil.
Sebastian Stark

2
@ ChaiT.Rex, benim için sorun, metnin "256 renk" bölümünde bu seçeneklerden bahsetmediğinden daha fazla olmasına rağmen, sadece renk tablosu
Sebastian Stark

6

@M'den gelen cevaba ek olarak. Becerra, bunu exportiçine eklemeyi unutma ~/.bashrc. Böyle yapabilirsin:

nano ~/.bashrc

ve şimdi yazın export:

export GREP_COLORS='ms=01;33:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36'

Bu, grepsonuçları sarıya ayarlar ve yeniden exportbaşlatma sonrası terminalini veya bilgisayarı yeniden yapmam gerekmez .


5
Bir dahaki sefere daha iyi hale getirmek için orijinal cevabı düzenleyin.
Thorbjørn Ravn Andersen

Bu daha güzel ama sadece Linux üzerinde çalışıyor gibi görünüyor, Mac değil :(
Sridhar Sarnobat

@SridharSarnobat Mac Ubuntu'dan gerçekten farklı, Mac Linux değil ve ben bu adımı Ubuntu için yapıyorum (Mac için olsaydı, burada konu dışı olurdu, Mac'te Farklı
Soruları

Evet.
Hüzünümü
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.