İki ardışık grepkomut 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 grepkomut 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, 2013ve foo.
grep --color=always ID file | grep 2013 | grep foo
renk olur IDve fooancak 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 .bashrcvs, ama yok sürece nedense gerçekten etkilerini anlamak ve hala yapmak istiyorum için. grepYukarıda belirtilen gerçek nedeniyle birçok yönden kırılacaktır 1 .
aliasSık kullanıyorsanız bir ekleyin .
alias cgrep='grep --color=always'
GREP_OPTIONSve --color üç seçenek almak : never, autove always. İlki düşünülenler için ilk ikisi olmalıdır GREP_OPTIONS.
Ayrıca kontrol edebilir GREP_COLORSiçinde mansayfaları 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!