4 Kasım 2021 Perşembe

grep General Output Control - Dosya İsimleri veya Çıktıyı Kontrol Eder

Giriş
Çıktıyı kontrol etmek içindir.
--color
Açıklaması şöyle.
Surround the matched (non-empty) strings, matching lines, context lines, file names, line numbers, byte offsets, and separators (for fields and groups of context lines) with escape sequences to display them in color on the terminal.  ...  WHEN is neveralways or auto.
Varsayılan değer auto olduğu için şöyle yaparız.
grep --color ...
-L,--files-without-match
Açıklaması şöyle. Eşleşmeyen dosyaları verir
-L, --files-without-match

Suppress normal output; instead print the name of each input file from which no output would normally have been printed. The scanning will stop on the first match.

-l, --files-with-matches

Suppress normal output; instead print the name of each input file from which output would normally have been printed. The scanning will stop on the first match.
Örnek
Şöyle yaparız. Önce 'cat' kelimesini içeren dosyaların isimlerini alırız. Daha sonra bu dosyalarda 'dog' kelimesi içermeyenleri buluruz.
grep -L 'dog' $(grep -l 'cat' <list of files>)
-l,--files-with-matches
Açıklaması şöyle
grep -l lists the names of files with matching strings
Örnek
Şöyle yaparız. Bulunduğum dizin ve altındaki her şeyi tarar içinde abc geçen dosyaları listeler
grep -lRe abc .
-q, --quite, --silent
quite anlamına gelir. stdout'a çıktı yazmaz. If koşullarında kullanılır. Şöyle yaparız
if grep -q 'release 7\.[56] ' /etc/redhat-release
then ...
-o
Genellikle düzenli ifadeler ile kullanılır. Sadece eşleşen kısım gösterilir. Açıklaması şöyle
-o, --only-matching
Print only the matched (non-empty) parts of a matching line, with each such part on a separate output line.
Burada non-empty kısmı önemli çünkü bazen düzenli ifadeler ile boş string çıktısı gelebiliyor. Açıklaması şöyle
Many regular expressions can match empty text; for example:$ grep -E '.?' <<<""

outputs a blank line because the empty line matches. However, adding -o results in no output at all:$ grep -Eo '.?' <<<""

because -o ignores empty matches.

Specifying that -o ignores empty matches means the implementers don’t need to decide what to do with zero-length matches, which would otherwise produce rather lengthy (and useless) output in many circumstances.
Örnek
Şöyle yaparız.
$ str='25 results [22 valid, 2 invalid, 1 undefined]'
grep -E -o '[0-9]+' <<<"$str"

Hiç yorum yok:

Yorum Gönder