yol / dosya göstermeden grep: line


234

Nasıl grep ve sadece eşleşen çizgi döndürür? yani yol / dosya adı sonuçlardan çıkarılır.

Bu durumda, geçerli dizindeki tüm .bar dosyalarına bakmak ve FOO terimini aramak istiyorum

find . -name '*.bar' -exec grep -Hn FOO {} \;

Yanıtlar:


375

Gerek yok find. Sadece belirli bir dizinde bir desen arıyorsanız, bu yeterli olmalıdır:

grep -hn FOO /your/path/*.bar

Burada -hitibaren, dosya gizlemek için bir parametredir man grep:

-h, --no-dosyaadı

Çıktıda dosya adlarının önekini bastırın. Aranacak tek bir dosya (veya yalnızca standart girdi) olduğunda bu varsayılan değerdir.

Kullandığınızı unutmayın

-H, - dosyaadı ile

Her eşleşme için dosya adını yazdırın. Aranacak birden fazla dosya olduğunda bu varsayılan değerdir.


satır numarası atlanabilir mi?
javadba

@javadba muhtemelen bir takma ad kullanıyorsunuz, yazın alias grep. Takma adı atlamak için\grep ...
fedorqui 'SO stop harming'

1
Evet takma ad kullanıyordu.
javadba

8

Sadece yerini -Hile -h. man grepSeçenekler hakkında daha fazla ayrıntı kontrol edin

find . -name '*.bar' -exec grep -hn FOO {} \;

6

Man sayfasından:

-h, --no-filename
    Suppress the prefixing of file names on output. This is the default when there
    is only one file (or only standard input) to search.
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.