← man/text
zfgrep — man zfgrep — 80×24
ugur@toprak:~/man/text$man zfgrep
Bölüm 1 Metin İşleme

zfgrep

dosya deseni arayıcısı

Ö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 aracı, verilen herhangi bir girdi dosyasını arayarak bir veya daha fazla desenle eşleşen satırları seçer. Varsayılan olarak bir desen, desendeki düzenli ifade (RE), girdideki satır sonu (newline) karakteri hariç tutularak girdi satırıyla eşleştiğinde o satırla eşleşmiş sayılır. Boş bir ifade her satırla eşleşir. Desenlerden en az biriyle eşleşen her girdi satırı standart çıktıya yazılır.

grep basit desenler ve temel düzenli ifadeler (BRE) için kullanılır; egrep ise genişletilmiş düzenli ifadeleri (ERE) işleyebilir. Düzenli ifadeler hakkında daha fazla bilgi için re_format(7) kılavuz sayfasına bakın. fgrep hem grep hem de egrep'ten daha hızlıdır, ancak yalnızca sabit desenleri işleyebilir (yani düzenli ifadeleri yorumlamaz). Desenler bir veya daha fazla satırdan oluşabilir, bu da desen 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) sıkıştırma araçlarıyla 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) sıkıştırma aracıyla sıkıştırılmış girdi dosyalarını kabul eder.

Aşağıdaki seçenekler mevcuttur:

-A num, --after-context=num Her eşleşmeden sonraki num satırlık bağlamı yazdırır. Ayrıca -B ve -C seçeneklerine bakın.

-a, --text Tüm dosyaları ASCII metin dosyası gibi değerlendirir. Normalde, dosyalar ikili (binary) karakterler içeriyorsa grep yalnızca “Binary file ... matches” (İkili dosya ... eşleşiyor) yazdırır. Bu seçeneğin kullanılması grep'i belirtilen desenle eşleşen satırları çıktılamaya zorlar.

-B num, --before-context=num Her eşleşmeden önceki num satırlık bağlamı yazdırır. Ayrıca -A ve -C seçeneklerine bakın.

-b, --byte-offset Eşleşen desenin bayt cinsinden sapması (offset) ilgili eşleşen satırın önünde görüntülenir.

-C num, --context=num Her eşleşmeyi çevreleyen num satırlık önceki ve sonraki bağlamı yazdırır. Ayrıca -A ve -B seçeneklerine bakın.

-c, --count Yalnızca seçilen satırların sayısı standart çıktıya yazılır.

--colour=[when], --color=[when] Eşleşen metni GREP_COLOR çevre değişkeninde saklanan ifadeyle işaretler. when için olası değerler “never” (asla), “always” (her zaman) ve “auto” (otomatik) şeklindedir.

-D action, --devices=action Aygıtlar, FIFO'lar ve soketler için talep edilen eylemi belirtir. Varsayılan eylem, normal dosyalarmış gibi okunmaları anlamına gelen “read” (oku) şeklindedir. Eylem “skip” (atla) olarak ayarlanırsa, aygıtlar sessizce atlanır.

-d action, --directories=action Dizinler için talep edilen eylemi belirtir. Varsayılan olarak “read” (oku) şeklindedir; bu, dizinlerin normal dosyalarla aynı şekilde okunacağı anlamına gelir. Diğer olası değerler, dizinleri sessizce yok saymak için “skip” (atla) ve bunları yinelemeli (recursive) olarak okumak için “recurse” (yinele) şeklindedir; bu, -R ve -r seçenekleriyle aynı etkiye sahiptir.

-E, --extended-regexp Deseni genişletilmiş bir düzenli ifade (ERE) olarak yorumlar (yani grep'i egrep gibi davranmaya zorlar).

-e pattern, --regexp=pattern Girdinin aranması sırasında kullanılacak deseni belirtir: belirtilen desenlerden herhangi biriyle eşleşirse girdi satırı seçilir. Bu seçenek, birden fazla desen belirtmek için birden çok -e seçeneği kullanıldığında veya bir desen tire (‘-’) ile başladığında oldukça kullanışlıdır.

--exclude pattern Belirtilirse, verilen dosya adı deseniyle eşleşen dosyaları aramadan hariç tutar. --exclude ve --include desenlerinin verilen sırayla işlendiğini unutmayın. Bir ad birden fazla desenle eşleşirse, en son eşleşen kural kazanır. Herhangi bir --include deseni belirtilmezse, hariç tutulmayan tüm dosyalar aranır. Desenler, yalnızca dosya adı bileşeniyle değil, belirtilen tam yolla eşleştirilir.

--exclude-dir pattern -R belirtilmişse, verilen dosya adı deseniyle eşleşen dizinleri aramadan hariç tutar. --exclude-dir ve --include-dir desenlerinin verilen sırayla işlendiğini unutmayın. Bir ad birden fazla desenle eşleşirse, en son eşleşen kural kazanır. Herhangi bir --include-dir deseni belirtilmezse, hariç tutulmayan tüm dizinler aranır.

-F, --fixed-strings Deseni bir sabit dizgiler kümesi olarak yorumlar (yani grep'i fgrep gibi davranmaya zorlar).

-f file, --file=file Dosyadan satır sonuyla ayrılmış bir veya daha fazla desen okur. Boş desen satırları her girdi satırıyla eşleşir. Satır sonları (newlines) bir desenin parçası olarak kabul edilmez. Eğer dosya boşsa hiçbir şey eşleştirilmez.

-G, --basic-regexp Deseni temel bir düzenli ifade (BRE) olarak yorumlar (yani grep'i geleneksel grep gibi 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 asla dosya adı başlıklarını (yani dosya adlarını) yazdırmaz.

  • --help: Kısa bir yardım mesajı yazdırır.

  • -I: İkili (binary) dosyaları yok sayar. Bu seçenek “--binary-files=without-match” seçeneğine eşdeğerdir.

-i, --ignore-case Büyük/küçük harfe duyarsız eşleştirme gerçekleştirir. Varsayılan olarak grep büyük/küçük harfe duyarlıdır.

--include pattern Belirtilirse, yalnızca verilen dosya adı deseniyle eşleşen dosyalar aranır. --include ve --exclude desenlerinin verilen sırayla işlendiğini unutmayın. Bir ad birden fazla desenle eşleşirse, en son eşleşen kural kazanır. Desenler, yalnızca dosya adı bileşeniyle değil, belirtilen tam yolla eşleştirilir.

--include-dir pattern -R belirtilmişse, yalnızca verilen dosya adı deseniyle eşleşen dizinler aranır. --include-dir ve --exclude-dir desenlerinin verilen sırayla işlendiğini unutmayın. Bir ad birden fazla desenle eşleşirse, en son eşleşen kural kazanır.

-J, --bz2decompress Metni aramadan önce bzip2(1) ile sıkıştırılmış dosyanın sıkıştırmasını açar.

-L, --files-without-match Yalnızca seçilen satırları içermeyen dosyaların adları standart çıktıya yazılır. Yol adları, aranan dosya başına bir kez listelenir. Standart girdi aranırsa, bir --label belirtilmediği sürece “(standard input)” (standart girdi) dizgisi yazılır.

-l, --files-with-matches Yalnızca seçilen satırları içeren dosyaların adları standart çıktıya yazılır. grep, aramaları potansiyel olarak daha az maliyetli hale getirmek için bir dosyayı yalnızca bir eşleşme bulunana kadar arayacaktır. Yol adları, aranan dosya başına bir kez listelenir. Standart girdi aranırsa, bir --label belirtilmediği sürece “(standard input)” (standart girdi) dizgisi yazılır.

--label Normalde bir dosya adının yazdırılacağı yerlerde “(standard input)” yerine kullanılacak etiketi belirtir. Bu seçenek -H, -L ve -l için geçerlidir.

  • --mmap: Girdiyi okumak için read(2) yerine mmap(2) kullanır; bu bazı durumlarda daha iyi performans sağlayabilir ancak belirsiz 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 num adet eşleşmeden sonra dosyayı okumayı durdurur.

-n, --line-number Her çıktı satırının önüne, satır 1'den başlayarak dosyadaki göreli satır numarası eklenir. Satır numarası sayacı, işlenen her dosya için sıfırlanır. -c, -L, -l veya -q belirtilmişse bu seçenek yoksayılır.

  • --null: Dosya adından sonra bir sıfır baytı (null byte) yazdırır.

  • -O: -R belirtilmişse, sembolik bağlantıları yalnızca komut satırında açıkça listelenmişlerse takip eder. Varsayılan davranış sembolik bağlantıları takip etmemektir.

-o, --only-matching Satırların yalnızca eşleşen kısmını yazdırır.

  • -p: -R belirtilmişse, hiçbir sembolik bağlantı takip edilmez. Varsayılan davranış budur.

-q, --quiet, --silent Sessiz mod: normal çıktıyı bastırır. grep, aramaları potansiyel olarak daha az maliyetli hale getirmek için bir dosyayı yalnızca bir eşleşme bulunana kadar arayacaktır.

-R, -r, --recursive Listelenen alt dizinleri yinelemeli (recursive) olarak arar. (yani grep'i rgrep gibi davranmaya zorlar).

  • -S: -R belirtilmişse, tüm sembolik bağlantıları takip eder. Varsayılan davranış sembolik bağlantıları takip etmemektir.

-s, --no-messages Sessiz mod. Mevcut olmayan ve okunamayan dosyalar yoksayılır (yani 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 ve yalnızca GNU grep ile uyumluluk için sağlanmıştır.

-V, --version Sürüm bilgisini görüntüler ve çıkış yapar.

-v, --invert-match Seçilen satırların, belirtilen desenlerin hiçbiriyle eşleşmeyen satırlar olduğunu belirtir.

-w, --word-regexp İfade bir sözcük olarak aranır (sanki ‘[[:<:]]’ ve ‘[[:>:]]’ ile çevrelenmiş gibi; bkz. re_format(7)). -x de belirtilmişse bu seçeneğin hiçbir etkisi yoktur.

-x, --line-regexp Yalnızca tam bir sabit dizgi veya düzenli ifadeyle birebir eşleşen girdi satırları eşleşen satırlar olarak kabul edilir.

  • -y: -i seçeneğine eşdeğerdir. Kullanımdan kaldırılmıştır.

-z, --null-data Girdi ve çıktı verilerini, satır sonu (newline) yerine bir sıfır baytı ile sonlandırılan satır dizileri olarak değerlendirir.

-X, --xz Metni aramadan önce xz(1) ile sıkıştırılmış dosyanın sıkıştırmasını açar.

-Z, --decompress grep'i zgrep gibi davranmaya zorlar.

--binary-files=value İkili dosyaların aranmasını ve yazdırılmasını kontrol eder. Seçenekler şunlardır: binary (varsayılan) İkili dosyaları arar ancak yazdırmaz. without-match İkili dosyaları aramaz. text Tüm dosyaları metin dosyası gibi değerlendirir.

--line-buffered Çıktıyı satır ara bellekli (line buffered) olmaya zorlar. Varsayılan olarak çıktı, standart çıktı bir terminal olduğunda satır ara bellekli, aksi takdirde blok ara bellekli olur.

Eğer hiçbir dosya argümanı belirtilmemişse, standart girdi kullanılır. Ek olarak, standart girdiden okumak amacıyla, dosya adının kabul edildiği her yerde dosya adı yerine “-” kullanılabilir. Buna hem -f hem de dosya argümanları dahildir.

Çevre Değişkenleri

GREP_OPTIONS Argüman listesinin başına yerleştirilecek varsayılan seçenekleri belirtmek için kullanılabilir. GNU grep'teki davranışın aksine, ters eğik çizgiyle kaçış (backslash-escaping) desteklenmez.

Çıkış Durumu

grep aracı aşağıdaki değerlerden biriyle çıkış yapar:

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’ deseninin tüm örneklerini bulur:

	       $ grep 'patricia' myfile

     -	 Yukarıdakiyle aynıdır ancak yalnızca tam sözcükleri arar:

	       $ grep -w 'patricia' myfile

     -	 Tam olarak ‘FOO’ deseninin eşleşme sayısını sayar:

	       $ grep -c FOO myfile

     -	 Yukarıdakiyle aynıdır ancak büyük/küçük harfi yok sayar:

	       $ grep -c -i FOO myfile

     -	 Bir satırın başındaki ‘.Pp’ deseninin tüm örneklerini bulur:

	       $ grep '^\.Pp' myfile

	 Tırnak işaretleri, ifadenin tamamının kullanıcının kabuğu yerine grep tarafından değerlendirilmesini sağlar.  Şapka işareti ‘^’ satır başındaki boş dizgiyle eşleşir ve ‘\’ işareti, aksi takdirde herhangi bir karakterle eşleşecek olan ‘.’ karakterini kaçırır.

     -	 Bir dosyadaki ‘foo’ veya ‘bar’ kelimelerini içermeyen tüm satırları bulur:

	       $ grep -v -e 'foo' -e 'bar' myfile

     -	 Genişletilmiş düzenli ifadeleri kullanarak ‘calendar’ dosyasında 19, 20 veya 25 değerlerini arar:

	       $ egrep '19|20|25' calendar

     -	 ‘FIXME’ desenini içeren ‘*.h’ dosyalarının adlarını ve eşleşen satırları gösterir.  Aramayı /usr/src/sys/arm dizininden itibaren yinelemeli (recursive) olarak gerçekleştirir:

	       $ grep -H -R FIXME --include="*.h" /usr/src/sys/arm/

     -	 Yukarıdakiyle aynıdır ancak yalnızca eşleşen dosyanın adını gösterir:

	       $ grep -l -R FIXME --include="*.h" /usr/src/sys/arm/

     -	 ‘foo’ metnini içeren satırları gösterir.  Çıktının eşleşen kısmı renklendirilir ve eşleşen satırların önüne satır numarası ile dosyadaki sapma (offset) değeri eklenir.

	       $ grep -b --colour -n foo myfile

     -	 Standart girdiden okunan genişletilmiş düzenli ifade desenleriyle eşleşen satırları gösterir:

	       $ echo -e 'Free\nBSD\nAll.*reserved' | grep -E -f - myfile

     -	 pciconf(8) komutunun çı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ğlam ile birlikte gösterir:

	       $ pciconf -lv | grep -B3 -A1 -E 'class.*=.*storage'

     -	 Herhangi bir çıktıyı bastırır ve uygun bir mesaj göstermek için çıkış durumunu kullanır:

	       $ 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 aracı, IEEE Std 1003.1-2008 (“POSIX.1”) standardı ile uyumludur.

[-AaBbCDdGHhILmopRSUVw] bayrakları bu standart için uzantılardır ve boş bir desen dosyasıyla kullanıldığında -f bayrağının davranışı belirsiz bırakılmıştır.

Tüm uzun seçenekler bu aracın GNU sürümleriyle uyumluluk için sağlanmıştır.

grep aracının geçmiş sürümleri [-ruy] bayraklarını da destekliyordu. Bu uygulama bu seçenekleri desteklemektedir; ancak bunların kullanılması kesinlikle önerilmez.

Tarihçe

grep komutu ilk olarak Version 6 AT&T UNIX sürümünde ortaya çıktı.

Hatalar

grep aracı Unicode girdilerini normalize etmez, bu nedenle birleşik karakterler (composed characters) içeren bir desen, ayrıştırılmış (decomposed) girdiyle eşleşmez ve bunun tersi de geçerlidir.

macOS 26.4 10 Kasım 2021 macOS 26.4