Özet
grep [-abcdDEFGHhIiJLlMmnOopqRSsUVvwXxZz] [-A num] [-B num] [-C num] [-e pattern] [-f file]
[--binary-files=value] [--color[=when]] [--colour[=when]] [--context=num] [--label]
[--line-buffered] [--null] [pattern] [file ...]
Açıklama
grep, verilen girdi dosyalarında bir veya daha fazla örüntüyle eşleşen satırları seçer. Varsayılan olarak, örüntüdeki düzenli ifade (RE) girdi satırıyla sonundaki yeni satır karakteri olmadan eşleşiyorsa örüntü o satırla eşleşmiş sayılır.
Boş ifade her satırla eşleşir. Örüntülerden en az biriyle eşleşen her girdi satırı standart çıktıya yazılır.
grep, basit örüntüler ve temel düzenli ifadeler (BRE) için kullanılır. egrep, genişletilmiş düzenli ifadeleri (ERE) işleyebilir. Düzenli ifadeler hakkında daha fazla bilgi için re_format(7) sayfasına bakın.
fgrep, grep ve egrep araçlarından daha hızlıdır, ancak yalnızca sabit örüntüleri işleyebilir; yani düzenli ifadeleri yorumlamaz. Örüntüler bir veya daha fazla satırdan oluşabilir; bu, örüntü satırlarından herhangi birinin girdinin bir bölümüyle eşleşmesine olanak tanır.
zgrep, zegrep ve zfgrep sırasıyla grep, egrep ve fgrep gibi davranır, ancak compress(1) veya gzip(1) ile sıkıştırılmış girdi dosyalarını kabul eder.
bzgrep, bzegrep ve bzfgrep sırasıyla grep, egrep ve fgrep gibi davranır, ancak bzip2(1) ile sıkıştırılmış girdi dosyalarını kabul eder.
Seçenekler
-A num,--after-context=num: Her eşleşmeden sonranumsatırlık sonraki bağlamı yazdırır. Ayrıca-Bve-Cseçeneklerine bakın.-a,--text: Tüm dosyaları ASCII metni olarak ele alır. Normalde dosyalar ikili karakterler içeriyorsagrepyalnızca "Binary file ... matches" yazar; bu seçenek, eşleşen satırların çıktı olarak verilmesini zorlar.-B num,--before-context=num: Her eşleşmeden öncenumsatırlık önceki bağlamı yazdırır. Ayrıca-Ave-Cseçeneklerine bakın.-b,--byte-offset: Eşleşen örüntünün bayt cinsinden ofsetini, ilgili eşleşen satırın önünde gösterir.-C num,--context=num: Her eşleşmeyi çevreleyennumsatırlık önceki ve sonraki bağlamı yazdırır. Ayrıca-Ave-Bseçeneklerine bakın.-c,--count: Standart çıktıya yalnızca seçilen satırların sayısını yazar.--colour=[when],--color=[when]: Eşleşen metniGREP_COLORortam değişkeninde saklanan ifadeyle işaretler.wheniçin olası değerlernever,alwaysveautoşeklindedir.-D action,--devices=action: Aygıtlar, FIFO'lar ve soketler için talep edilen eylemi belirtir. Varsayılan eylemreaddeğeridir; bu, aygıtların normal dosyalarmış gibi okunacağı anlamına gelir.skipayarlanırsa aygıtlar sessizce atlanır.-d action,--directories=action: Dizinler için talep edilen eylemi belirtir. Varsayılan değerreadşeklindedir. Diğer olası değerler, dizinleri sessizce yok saymak içinskipve yinelemeli okumak içinrecurseşeklindedir;recurse,-Rve-rseçenekleriyle aynı etkiye sahiptir.-E,--extended-regexp: Örüntüyü genişletilmiş düzenli ifade olarak yorumlar; yanigreparacınıegrepgibi davranmaya zorlar.-e pattern,--regexp=pattern: Aramada kullanılacak örüntüyü belirtir. Bu seçenek, birden fazla örüntü belirtmek için birden fazla-ekullanıldığında veya örüntü tire (-) ile başladığında özellikle yararlıdır.--exclude pattern: Verilen dosya adı kalıbıyla eşleşen dosyaları aramadan hariç tutar.--excludeve--includekalıpları verilen sırayla işlenir; bir ad birden fazla kalıpla eşleşirse en son eşleşen kural geçerli olur.--exclude-dir pattern:-Rbelirtilmişse, verilen dosya adı kalıbıyla eşleşen dizinleri aramadan hariç tutar.--exclude-dirve--include-dirkalıpları verilen sırayla işlenir; bir ad birden fazla kalıpla eşleşirse en son eşleşen kural geçerli olur.-F,--fixed-strings: Örüntüyü sabit dizgiler kümesi olarak yorumlar; yanigreparacınıfgrepgibi davranmaya zorlar.-f file,--file=file:filedosyasından yeni satırlarla ayrılmış bir veya daha fazla örüntü okur. Boş örüntü satırları her girdi satırıyla eşleşir; dosya boşsa hiçbir şey eşleşmez.-G,--basic-regexp: Örüntüyü temel düzenli ifade olarak yorumlar; yanigreparacını gelenekselgrepgibi davranmaya zorlar.-H: Çıktı satırlarıyla birlikte her zaman dosya adı başlıklarını yazdırır.-h,--no-filename: Çıktı satırlarıyla birlikte dosya adı başlıklarını hiçbir zaman yazdırmaz.--help: Kısa bir yardım mesajı yazdırır.-I: İkili dosyaları yoksayar. Bu seçenek--binary-files=without-matchseçeneğine eşdeğerdir.-i,--ignore-case: Büyük/küçük harfe duyarsız eşleşme gerçekleştirir. Varsayılan olarakgrepbüyük/küçük harfe duyarlıdır.--include pattern: Yalnızca verilen dosya adı kalıbıyla eşleşen dosyaları arar.--includeve--excludekalıpları verilen sırayla işlenir; bir ad birden fazla kalıpla eşleşirse en son eşleşen kural geçerli olur.--include-dir pattern:-Rbelirtilmişse, yalnızca verilen dosya adı kalıbıyla eşleşen dizinleri arar.--include-dirve--exclude-dirkalıpları verilen sırayla işlenir; bir ad birden fazla kalıpla eşleşirse en son eşleşen kural geçerli olur.-J,--bz2decompress: Metni aramadan öncebzip2(1)ile sıkıştırılmış dosyanın sıkıştırmasını açar.-L,--files-without-match: Standart çıktıya yalnızca seçilen satırları içermeyen dosyaların adlarını yazar. Standart girdi aranırsa ve--labelbelirtilmemişse(standard input)yazılır.-l,--files-with-matches: Standart çıktıya yalnızca seçilen satırları içeren dosyaların adlarını yazar.grep, her dosyayı yalnızca bir eşleşme bulunana kadar arar.--label: Dosya adının normalde yazdırılacağı yerlerde(standard input)yerine kullanılacak etiketi belirtir. Bu seçenek-H,-Lve-liçin geçerlidir.--mmap: Girdiyi okumak içinread(2)yerinemmap(2)kullanır. Bazı durumlarda daha iyi performans sağlayabilir, ancak tanımlanmamış davranışlara neden olabilir.-M,--lzma: Metni aramadan önce LZMA ile sıkıştırılmış dosyanın sıkıştırmasını açar.-m num,--max-count=num:numsayıda eşleşmeden sonra dosyayı okumayı durdurur.-n,--line-number: Her çıktı satırının önüne, dosyada 1. satırdan başlayan göreli satır numarasını ekler.-c,-L,-lveya-qbelirtilmişse bu seçenek yoksayılır.--null: Dosya adından sonra bir sıfır baytı yazar.-O:-Rbelirtilmişse, sembolik bağları yalnızca komut satırında açıkça listelenmişlerse takip eder. Varsayılan davranış sembolik bağları takip etmemektir.-o,--only-matching: Satırların yalnızca eşleşen kısmını yazdırır.-p:-Rbelirtilmişse hiçbir sembolik bağ takip edilmez. Varsayılan davranış budur.-q,--quiet,--silent: Sessiz moddur; normal çıktıyı bastırır.grep, her dosyayı yalnızca bir eşleşme bulunana kadar arar.-R,-r,--recursive: Listelenen alt dizinleri yinelemeli olarak arar; yanigreparacınırgrepgibi davranmaya zorlar.-S:-Rbelirtilmişse tüm sembolik bağları takip eder. Varsayılan davranış sembolik bağları takip etmemektir.-s,--no-messages: Sessiz moddur. Mevcut olmayan ve okunamayan dosyalar yoksayılır; hata mesajları bastırılır.-U,--binary: İkili dosyaları arar, ancak bunları yazdırmaya çalışmaz.-u: Bu seçeneğin hiçbir etkisi yoktur; yalnızca GNUgrepile uyumluluk için sunulmuştur.-V,--version: Sürüm bilgisini görüntüler ve çıkış yapar.-v,--invert-match: Belirtilen örüntülerden hiçbirisiyle eşleşmeyen satırları seçer.-w,--word-regexp: İfadeyi kelime olarak arar; sanki[[:<:]]ve[[:>:]]ile çevrelenmiş gibi davranır.-xde belirtilmişse bu seçeneğin etkisi yoktur.-x,--line-regexp: Yalnızca sabit dizginin veya düzenli ifadenin tamamıyla eşleşen girdi satırlarını eşleşen satır olarak kabul eder.-y:-iseçeneğine eşdeğerdir. Kullanımdan kaldırılmıştır.-z,--null-data: Girdi ve çıktı verilerini, yeni satır yerine sıfır baytı ile sonlandırılan satır dizileri olarak ele alır.-X,--xz: Metni aramadan öncexz(1)ile sıkıştırılmış dosyanın sıkıştırmasını açar.-Z,--decompress:greparacınızgrepgibi davranmaya zorlar.--binary-files=value: İkili dosyaların aranmasını ve yazdırılmasını denetler.--line-buffered: Çıktıyı satır arabellekli olmaya zorlar. Varsayılan olarak çıktı, standart çıktı terminal olduğunda satır arabellekli; aksi halde blok arabellekli olur.
--binary-files=value için desteklenen değerler:
binary: Varsayılan değerdir; ikili dosyaları arar ancak yazdırmaz.without-match: İkili dosyaları aramaz.text: Tüm dosyaları metin olarak ele alır.
Herhangi bir dosya argümanı belirtilmezse standart girdi kullanılır. Dosya adının kabul edildiği her yerde standart girdiden okumak için dosya adı yerine - kullanılabilir; bu hem -f hem de dosya argümanları için geçerlidir.
Ortam
GREP_OPTIONS: Argüman listesinin başına yerleştirilecek varsayılan seçenekleri belirtmek için kullanılabilir. GNUgrepuygulamasının aksine, ters eğik çizgiyle kaçış desteklenmez.
Çıkış Durumu
grep aşağıdaki değerlerden biriyle çıkar:
0: Bir veya daha fazla satır seçildi.1: Hiçbir satır seçilmedi.>1: Bir hata oluştu.
Örnekler
Bir dosyadaki patricia örüntüsünün tüm oluşumlarını bulmak:
grep 'patricia' myfile
Yukarıdakinin aynısını yalnızca tam kelimeler için yapmak:
grep -w 'patricia' myfile
Tam olarak FOO örüntüsünün oluşumlarını saymak:
grep -c FOO myfile
Yukarıdakinin aynısını büyük/küçük harf durumunu yoksayarak yapmak:
grep -c -i FOO myfile
Bir satırın başındaki .Pp örüntüsünün tüm oluşumlarını bulmak:
grep '^\.Pp' myfile
Tırnak işaretleri, tüm ifadenin kullanıcının kabuğu yerine grep tarafından değerlendirilmesini sağlar. Düzeltme işareti ^ satırın başındaki boş dizgiyle eşleşir; \ karakteri, aksi halde herhangi bir karakterle eşleşecek olan . karakterinden kaçar.
Bir dosyada foo veya bar kelimelerini içermeyen tüm satırları bulmak:
grep -v -e 'foo' -e 'bar' myfile
Genişletilmiş düzenli ifadelerle calendar dosyasında 19, 20 veya 25 aramak:
egrep '19|20|25' calendar
Eşleşen satırları ve FIXME örüntüsünü içeren *.h dosyalarının adını göstermek; aramayı /usr/src/sys/arm dizininden başlayarak yinelemeli yapmak:
grep -H -R FIXME --include="*.h" /usr/src/sys/arm/
Yukarıdakinin aynısını yalnızca eşleşen dosyanın adını göstererek yapmak:
grep -l -R FIXME --include="*.h" /usr/src/sys/arm/
foo metnini içeren satırları göstermek; çıktının eşleşen kısmını renklendirmek ve eşleşen satırlar için her satırın önüne satır numarası ile dosyadaki ofseti eklemek:
grep -b --colour -n foo myfile
Standart girdiden okunan genişletilmiş düzenli ifade örüntüleriyle eşleşen satırları göstermek:
echo -e 'Free\nBSD\nAll.*reserved' | grep -E -f - myfile
pciconf(8) çıktısından belirtilen genişletilmiş düzenli ifadeyle eşleşen satırları üç satırlık önceki bağlam ve bir satırlık sonraki bağlamla birlikte göstermek:
pciconf -lv | grep -B3 -A1 -E 'class.*=.*storage'
Herhangi bir çıktıyı bastırmak ve uygun bir mesaj göstermek için çıkış durumunu kullanmak:
grep -q foo myfile && echo File matches
Ayrıca Bakınız
bzip2(1), compress(1), ed(1), ex(1), gzip(1), sed(1), xz(1), zgrep(1), re_format(7)
Standartlar
grep, IEEE Std 1003.1-2008 ("POSIX.1") belirtimiyle uyumludur.
[-AaBbCDdGHhILmopRSUVw] bayrakları bu belirtime yapılan uzantılardır. Boş bir örüntü dosyasıyla kullanıldığında -f bayrağının davranışı tanımlanmamış bırakılmıştır.
Tüm uzun seçenekler, bu yardımcı aracın GNU sürümleriyle uyumluluk amacıyla sağlanmıştır.
grep aracının geçmiş sürümleri [-ruy] bayraklarını da destekliyordu. Bu uygulama bu seçenekleri destekler; ancak bunların kullanılması kesinlikle önerilmez.
Tarihçe
grep komutu ilk olarak Version 6 AT&T UNIX'te ortaya çıkmıştır.
Hatalar
grep, Unicode girdisini normalleştirmez. Bu nedenle birleşik karakterler içeren bir örüntü ayrıştırılmış girdiyle eşleşmez; bunun tersi de geçerlidir.