Grep / egrep için bir 'rc' yapılandırma dosyası var mı? (~ / .Egreprc?)


37

Gelişirken genellikle biraz grep yapıyorum ve her zaman aramak istemediğim bazı uzantılar var (like * .pyc).

Bir ~ / .egreprc veya buna benzer bir şey oluşturmak ve sonuçta her zaman pyc dosyalarını göstermemek için biraz filtreleme yapmak mümkün mü.

Bu mümkün mü, yoksa grep'i bu şekilde kullanmak için takma ad oluşturmak zorunda mıyım ve grep yerine takma adı mı arayacağım?

Yanıtlar:


66

Grep için rc dosyası yok, ancak ortam değişkenini GREP_OPTIONStüm grep komutlarına uygulanacak boşluklarla ayrılmış bir seçenekler listesine ayarlayabilirsiniz. Bunun için GNU grep (gömülü olmayan Linux, Cygwin ve diğer bazı sistemlerde uygulama) gereklidir 2.4; --excludeseçenek GNU grep 2.5 için yeni. Şuna şöyle bir şeyler koy ~/.profile:

export GREP_OPTIONS='--color=auto --exclude=*.pyc --exclude-dir=.git'

Bunu yaptıysanız, ancak varsayılan seçenekler olmadan bir kez grep çalıştırmak istiyorsanız, bunları geçersiz kılabilir (örneğin grep --color=neverrenkleri zorlamak için) veya GREP_OPTIONSdeğişkeni koşarak boşaltabilirsiniz GREP_OPTIONS= grep ….

Başka bir olasılık, grep için takma adları tanımlamaktır. Aşağıdakilerin bir değişkeni kullanıyorum:

alias regrep='grep -Er --exclude=*~ --exclude=*.pyc --exclude-dir=.bzr --exclude-dir=.git --exclude-dir=.svn'

1
Aradığım cevap bu. Sanırım ~ / .profile hakkında daha fazla okuyacağım. @Gilles, sen erkeksin. Yardım için teşekkürler!
Birisi hala size MS-DOS kullanarak

1
Bunu yapmak için iki olasılık olduğunu düşünürsek (GREP_OPTIONS ve alias grep): Bunlardan biri tercih ediliyor mu? Neden ya da neden olmasın?
Christoph Wurm

4
@Legate: Önemli bir fark, komut dosyalarındaki çağrıları GREP_OPTIONSetkileyeceği grepve takma adın kullanmayacağı bir fark. Bu yüzden GREP_OPTIONSdikkatli kullanılmalıdır. En yaygın kullanım, --color=autoprensipte senaryolarda zararsız olan içindir çünkü çıktı bir terminal ise etkilidir.
Gilles 'SO- kötülük yapmayı bırak'

GREP_OPTIONS kullanımdan kaldırıldı; lütfen bir takma ad veya komut dosyası kullanın
Steven Penny

3

ack ne istersen yapabilir ve daha fazlasını yapabilir.

Varsayılan olarak ikili dosyaları göz ardı eder ve istediğiniz kadar diğer dosya türlerini görmezden bunu söyleyebilir --notext, --nohtmlO kendi türleriyle özelleştirebilirsiniz öyle bir rc dosyası tanımlamak için yeteneği vardır vb.


Ben de teyze kullanıyorum ama hoşuma gitmedi. Gerçekten hızlı, ancak tüm kurulumlarda mevcut değil, bu yüzden grep hakkında düşünüyordum. Teşekkürler!
Biri hala size MS-DOS kullanarak

2
ack, düz bir metin dosyası olarak indirilebilir tek bir Perl programıdır. İsterseniz betterthangrep.com/ack-standalone adresine gidip içeriği bir dosyaya kesip yapıştırabilirsiniz. Özellikle Perl'i çalıştırabileceğiniz heryerde erişilebilir olmasını sağladım.
Andy Lester,

0

Sorunuza doğrudan bir cevap değil. Ancak grep, * .pyc dahil tüm ikili dosyaları yoksayma seçeneğine sahiptir. Seçenek-I

grep -rI hello .

0

GNU’da değil grep/ egrep, yok.

Muhtemelen yine de bunu yapmak için özel olarak adlandırılmış bir diğer ad veya senaryo isteyebilirsiniz, çünkü bir gün sonra özel yapılandırmanıza uyduğunu unuttuğunuz bir şeye bakmaya çalışırken kendinizi çok karıştırabilirsiniz.


3
GREP_OPTIONSiçinde ~/.profileyaklaşıyor.
Gilles 'SO- kötülük yapmayı kes'

1
@Gilles - iyi nokta. Aslında, kendimi böyle ayarladığımı unuttum --color=auto!
mattdm
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.