it-swarm.asia

Grep'ten daha az bir boru kullanıldığında renkli sonuçların alınması

Grep --colour seçeneğini çok kullanırım, ancak daha az kullanıyorum. Grep sonuçlarını nasıl daha az düşürür ve renklenmeyi nasıl koruyabilirim? (Yoksa bu mümkün mü?)

grep "search-string" -R * --colour | less 

DÜZENLE:

Doğrudan bir çözüm veya buna eşdeğer bir şey arıyorum.

236
Jeremy Powell

Sadece grep --color komutunu çalıştırdığınızda, çıktının bir terminal olup olmadığını algılayan ve eğer öyleyse renkleri etkinleştiren grep --color=auto anlamına gelir. Ancak, bir boru tespit ettiğinde renklendirmeyi devre dışı bırakır. Aşağıdaki komut:

grep --color=always -R "search string" * | less

Her zaman renklendirmeyi etkinleştirir ve otomatik algılamayı geçersiz kılar ve rengi less içinde vurgulayarak alırsınız.

EDIT: Sadece less çalışmalarını benimsememe rağmen, belki de eski sürümde -R bayrağının renkleri önermesi gerekiyor.

264
drrlvn

Bunu .bashrc dosyanıza ekleyebilirsiniz:

export GREP_OPTIONS="--color=always"

veya şöyle bir takma ad oluşturun:

alias grepc="grep --color=always"

ve burada belirtildiği gibi less için -R seçeneğini kullanmanız gerekir.

27

Böyle bir durumda, aslında küçük sh dosyaları oluşturmayı ve onları /usr/local/bin 'a koymayı tercih ederim.
Genelde grep işlevini pwd üzerinde özyinelemeli şekilde kullanırım, böylece kişisel senaryom:

#!/bin/sh
grep --color=always -r "[email protected]" . | less -R

Ve sonra sadece /usr/local/bin/g olarak kopyaladım (evet, çok kullanıyorum)

7
Iazel

"Grep" takma adını kullanmayın, takma adlar tarafından asla kullanılmayan takma adlara "daha az" olana kadar iyidir. .bashrc içine sadece koymak: alias less="less -r".

1
not2qubit

Koşmam lazım

grep --color=always -R "search string" * | less - r

bunu çalıştırmak için -r flag ile less ile.

0
Pierre François