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

fgrep

dosya deseni arayıcı

Sözdizimi

     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 girdi dosyalarını arayarak bir veya daha fazla desene uyan satırları seçer. Varsayılan olarak, desendeki düzenli ifade (RE) girdi satırıyla (satır sonundaki satır başı karakteri olmadan) eşleşirse, desen o girdi satırıyla eşleşir. 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) sayfasına bakın. fgrep, hem grep hem de egrep aracından 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 kısmıyla 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 ise 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 sonra num satırlık son bağlamı yazdırır. Ayrıca -B ve -C seçeneklerine de bakın.

-a, --text Tüm dosyaları ASCII metni olarak işler. 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ı olarak vermeye zorlar.

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

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

-C num, --context=num Her eşleşmenin öncesindeki ve sonrasındaki num satırlık bağlamı yazdırır. Ayrıca -A ve -B seçeneklerine de bakın.

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

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

-D action, --devices=action Cihazlar, FIFO'lar ve soketler için talep edilen eylemi belirtir. Varsayılan eylem "read" (oku) şeklindedir; bu, normal dosyalarmış gibi okunacakları anlamına gelir. Eylem "skip" (atla) olarak ayarlanırsa, cihazlar 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 yoksaymak için "skip" (atla) ve -R ile -r seçenekleriyle aynı etkiye sahip olan, dizinleri özyinelemeli olarak okumak için "recurse" (özyinele) şeklindedir.

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

-e pattern, --regexp=pattern Girdinin aranması sırasında kullanılan bir deseni belirtir: Belirtilen desenlerden herhangi biriyle eşleşen bir girdi satırı seçilir. Bu seçenek, birden fazla desen belirtmek için birden fazla -e seçeneği kullanıldığında veya bir desen kısa çizgi ('-') 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 belirtilen sırayla işlendiğini unutmayın. Bir ad birden fazla desenle eşleşirse, en son eşleşen kural geçerli olur. Hiçbir --include deseni belirtilmemişse, 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 and --include-dir desenlerinin belirtilen sırayla işlendiğini unutmayın. Bir ad birden fazla desenle eşleşirse, en son eşleşen kural geçerli olur. Hiçbir --include-dir deseni belirtilmemişse, hariç tutulmayan tüm dizinler aranır.

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

-f file, --file=file file dosyasından satır sonu karakteriyle ayrılmış bir veya daha fazla desen okur. Boş desen satırları her girdi satırıyla eşleşir. Satır sonu karakterleri desenin bir parçası olarak kabul edilmez. file boşsa hiçbir şey eşleştirilmez.

-G, --basic-regexp Deseni temel bir düzenli ifade 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 hiçbir zaman dosya adı başlıklarını (yani dosya adlarını) yazdırmaz.

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

  • -I: İkili dosyaları yoksayar. 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 Belirtilmişse, yalnızca verilen dosya adı deseniyle eşleşen dosyalar aranır. Note that:

  • --include ve --exclude desenleri belirtilen sırayla işlenir.: Bir ad birden fazla desenle eşleşirse, en son eşleşen kural geçerli olur. 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 belirtilen sırayla işlendiğini unutmayın. Bir ad birden fazla desenle eşleşirse, en son eşleşen kural geçerli olur.

-J, --bz2decompress Metni aramadan önce bzip2(1) ile sıkıştırılmış dosyayı 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ıyorsa, bir --label belirtilmedikçe "(standard input)" (standart girdi) dizesi 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 bir dosyayı yalnızca bir eşleşme bulunana kadar arar, bu da aramaları potansiyel olarak daha az maliyetli hale getirir. Yol adları, aranan dosya başına bir kez listelenir. Standart girdi aranıyorsa, bir --label belirtilmedikçe "(standard input)" (standart girdi) dizesi yazılır.

--label Normalde bir dosya adının yazdırılacağı yerlerde "(standard input)" (standart girdi) 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ış dosyayı açar.

-m num, --max-count=num num eşleşmeden sonra dosyayı okumayı durdurur.

-n, --line-number Her çıktı satırının önüne, dosyadaki 1'den başlayan göreceli 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 sıfır değerlikli bir bayt (null byte) yazdırır.

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

-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ğ takip edilmez. Varsayılan davranış budur.

-q, --quiet, --silent Sessiz mod: Normal çıktıyı bastırır. grep bir dosyayı yalnızca bir eşleşme bulunana kadar arar, bu da aramaları potansiyel olarak daha az maliyetli hale getirir.

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

  • -S: -R belirtilmişse tüm sembolik bağlar takip edilir. Varsayılan olarak sembolik bağlar takip edilmez.

-s, --no-messages Sessiz mod. Var 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 bilgilerini görüntüler ve çıkış yapar.

-v, --invert-match Seçilen satırlar, belirtilen desenlerden hiçbirine uymayan satırlardır.

-w, --word-regexp İfade bir kelime olarak aranır (sanki '[[:<:]]' ve '[[:>:]]' ile çevrelenmiş gibi; re_format(7) sayfasına bakın). -x seçeneği de belirtilmişse bu seçeneğin hiçbir etkisi yoktur.

-x, --line-regexp Yalnızca tam bir sabit dizgeye veya düzenli ifadeye karşı seçilen 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 karakteri yerine sıfır değerlikli bir bayt (null byte) ile sonlandırılan satır dizileri olarak işler.

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

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

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

--line-buffered Çıktıyı satır arabelleğine almaya zorlar. Varsayılan olarak, standart çıktı bir uçbirim olduğunda çıktı satır arabelleğine alınır, aksi takdirde blok arabelleğine alınır.

Hiçbir dosya bağımsız değişkeni belirtilmemişse standart girdi kullanılır. Ek olarak, standart girdiden okumak için dosya adı yerine "-" kullanılabilir. Bu, hem -f hem de dosya bağımsız değişkenlerini kapsar.

Ortam

GREP_OPTIONS Bağımsız değişken 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 oluşumlarını bulmak için:

	       $ grep 'patricia' myfile

     -	 Yukarıdakiyle aynıdır ancak yalnızca tam kelimeleri arar:

	       $ grep -w 'patricia' myfile

     -	 Tam olarak 'FOO' deseninin kaç kez geçtiğini saymak için:

	       $ grep -c FOO myfile

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

	       $ grep -c -i FOO myfile

     -	 Bir satırın başında '.Pp' deseninin tüm oluşumlarını bulmak için:

	       $ grep '^\.Pp' myfile

	 Kesme işaretleri, tüm ifadenin kullanıcının kabuğu (shell) yerine grep tarafından değerlendirilmesini sağlar. Giriş işareti '^', bir satırın başındaki boş dizeyle eşleşir ve '\' karakteri, aksi takdirde herhangi bir karakterle eşleşecek olan '.' karakterinden kaçışı sağlar.

     -	 Bir dosyada 'foo' veya 'bar' kelimelerini içermeyen tüm satırları bulmak için:

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

     -	 Genişletilmiş düzenli ifadeleri kullanarak 'calendar' dosyasında 19, 20 veya 25 değerlerinden herhangi birini aramak için:

	       $ egrep '19|20|25' calendar

     -	 Eşleşen satırları ve 'FIXME' desenini içeren '*.h' dosyalarının adını göstermek için. Aramayı /usr/src/sys/arm dizininden başlayarak özyinelemeli olarak yapın:

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

     -	 Yukarıdakinin aynısı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 her satırın önüne satır numarası ve dosyadaki ofset değeri eklenir:

	       $ grep -b --colour -n foo myfile

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

	       $ 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ır ön bağlam ve bir satır son bağlamla birlikte göstermek için:

	       $ 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 için:

	       $ 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") spesifikasyonu ile uyumludur.

[-AaBbCDdGHhILmopRSUVw] bayrakları bu spesifikasyonun uzantılarıdı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 sağlamak amacıyla sunulmuştur.

Grep aracının eski sürümleri [-ruy] bayraklarını da destekliyordu. Bu uygulama bu seçenekleri destekler; ancak kullanımları kesinlikle önerilmez.

Tarihçe

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

Hatalar

grep aracı Unicode girdisini normalleştirmez, bu nedenle birleşik karakterler içeren bir desen, ayrıştırılmış girdiyle eşleşmez ve bunun tersi de geçerlidir.

macOS 26.4 10 Kasım 2021 macOS 26.4