Grep varsayılan renk seçeneği


11

grep, linux'da en sık kullanılan komutlardan biridir. Bana göre, temel özelliği çıktı satırlarında aradığınız dizeyi vurgulamak. bu --color seçeneği ile elde edilebilir.

- Her seferinde renk yazmak sinir bozucu ve aynı zamanda üretken değil. Grep'i grep --color gibi davranacak şekilde değiştirmenin herhangi bir yolu var mı?

Ben grepd adlı küçük bir komut dosyası yazmaya çalıştım ve bu benim PATH değişkenine ekledi. Ancak komut dosyası giriş grepd üzerinde çalışmaz . Herhangi bir öneriniz lütfen.

#!/bin/bash
grep --color $1 $2

Yanıtlar:


21

Kabuğunuzun yapılandırma dosyasına aşağıdaki takma adı eklemeniz yeterlidir, örneğin .bashrcveya .bash_profile(hangisini kullandığınıza bağlı olarak, buraya bakın ):

alias grep='grep --color=auto'

Sadece olarak kullanabilirsiniz grep.

Basit komut takma adları aynı şeyi gayet iyi yaptığında genellikle komut dosyası oluşturmaya gerek yoktur. Aslında daha fazla seçenek geçmek istediyseniz betiğiniz bile çalışmaz grep. Bağımsız değişkenlerle baş edebilecek küçük bir snippet'e ihtiyacınız varsa, işlevleri kullanmalısınız .


9
Veya eşdeğer olarak, GREP_OPTIONSortam değişkenini ayarlayın :export GREP_OPTIONS='--color=always'
Jérôme

Eğer fgrep veya egrep kullanıyorsanız renk seçeneği eklemez, bunlar için ayrı takma adlara ihtiyacınız olacaktır. Ayrıca, @ Jérôme: GREP_OPTIONS, grep man sayfasında kullanımdan kaldırıldı olarak işaretlenmiştir.
Thayne

@Thayne sadece GNU grep için ve FreeBSD grep gibi diğerleri için değil. Ve anlayabildiğim kadarıyla, değiştirilmesinden bu yana 4 yıl geçti ve hala destekleniyor. Amortisman, çıkarılmış demek değildir.
cde

Genellikle yaptığım budur, ancak bazı durumlarda doğru çalışmaz. Örneğin: some_command | xargs grep fooxargs diğer adı kullanmadığı için renklendirilmez.
TM.

2
#!/bin/sh
exec grep --color "$@"

Bu, komut istediğiniz gibi çalışmadığında, bir komutu kabuk komut dosyasıyla "kaydırmanın" standart yolunu gösterir.

execİlave işlemi (komut diğeri grep için bir tane) oluşturmayı önler. İsterseniz dışarıda bırakabilirsiniz.

"$@"Scriptin tüm argümanlar yerine, hiçbir kaç önemli. Kabuğa özel boşluklar ve diğer karakterler içeren argümanları doğru şekilde korur.


"Exec grep", "exec / bin / grep" olmalıdır
Berend de Boer

2
@BerenddeBoer Pek değil. "exec grep" gayet iyi çalışır. Grep yolunu aramakta yanlış bir şey yok.
Kenster

-1

export GREP_COLORS='AUTO'~ / .bashrc'nizi koymayı deneyin - benim için işe yarıyor.

itibaren man grep

       --color[=WHEN], --colour[=WHEN]
          Surround  the  matched (non-empty) strings, matching lines, context lines, file names, line numbers, byte offsets, and separators (for fields and groups of context lines) with escape sequences
          to display them in color on the terminal.  The colors are defined by the environment variable GREP_COLORS.  The deprecated environment variable GREP_COLOR is still supported, but  its  setting
          does not have priority.  WHEN is never, always, or auto.

5
GREP_COLORSgerçek renkleri ayarlamaktır. Ayarı AUTOherhangi bir renk göstermemelidir. dışa aktarma GREP_OPTIONS = '- color = auto' cevap olmalı.
user137369
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.