İki ardışık grep
komut kullanırsanız, örneğin:
echo "foo bar" | grep foo | grep bar
Sonra ilk desen ("foo") vurgulanmaz. Aslında, grep'in renk kodlarını girişinden kaldırdığı görülüyor. Bunu önlemenin bir yolu var mı?
İki ardışık grep
komut kullanırsanız, örneğin:
echo "foo bar" | grep foo | grep bar
Sonra ilk desen ("foo") vurgulanmaz. Aslında, grep'in renk kodlarını girişinden kaldırdığı görülüyor. Bunu önlemenin bir yolu var mı?
Yanıtlar:
Kullanın --color=always
.
grep
çıktının bir boruya (veya dosyaya) olup olmadığını tespit eder. Çıktı dosyalanırken en çok renk istemezsiniz, çünkü bu terminal için kaçış dizisidir. Tipik:
foo ^[[01;31m^[[Kbar^[[m^[[K
örneğin:
grep pattern file > result
Geçersiz kılmak için --color=always
.
grep --color=always pattern file | ...
Misal:
Dosyaya sahip olmak:
ID=111;Year=2013;foo=bar
ID=222;Year=2013;foo=baz
Sonra
grep --color=always ID file | grep --color=always 2013 | grep foo
renk olur ID
, 2013
ve foo
.
grep --color=always ID file | grep 2013 | grep foo
renk olur ID
ve foo
ancak 2013
.
1 Önemli: Renklerdeneklenen dağınıklığın zincirdeki bir sonraki komuta aktarıldığınıda hatırlamanız gerekir. Kimlik renklendirildikten sonra (kolaylıkla) eşleşemezsiniz, örnID=111
.
Bazı durumlarda belki de terminal renklerinin dosyada olmasını istersiniz . Örneğin deneyin
grep --color=always foo file > result
cat result
Sonuçta elde edilen dosya taşınabilirliği çok sınırlı olsa da.
Renklendirmenin kendisi de bir eklentidir.
Good @slm tarafından belirtildiği gibi şunları ekleyebilirsiniz:
export GREP_OPTIONS="--color=always"
sizin için .bashrc
vs, ama yok sürece nedense gerçekten etkilerini anlamak ve hala yapmak istiyorum için. grep
Yukarıda belirtilen gerçek nedeniyle birçok yönden kırılacaktır 1 .
alias
Sık kullanıyorsanız bir ekleyin .
alias cgrep='grep --color=always'
GREP_OPTIONS
ve --color
üç seçenek almak : never
, auto
ve always
. İlki düşünülenler için ilk ikisi olmalıdır GREP_OPTIONS
.
Ayrıca kontrol edebilir GREP_COLORS
içinde man
sayfaları veya en gnu grep .
export GREP_OPTIONS="--color=always"
ekleyin : .bashrc'de seçenekleri herhangi bir grep için varsayılan yapar ve hemen hemen çivilenmişsinizdir!