Giriş
Bu seçenekler eşleşmenin nasıl olacağını kontrol eder.
-e seçeneği
Birden fazla örüntü belirtilebilir.
Örnek
Şöyle yaparız.
Her satırda aranacak pattern olan dosya belirtilir.
Örnek ver
-i, --ignore-case seçeneği
Örnek
Bu seçenekler eşleşmenin nasıl olacağını kontrol eder.
-e seçeneği
Birden fazla örüntü belirtilebilir.
Örnek
Şöyle yaparız.
root@grep -e tire_id -e appID /path/to/*/vehicle/production.json
/path/to/000001_000002/vehicle/production.json: "tire_id": "1305436516186552",
/path/to/000001_000002/vehicle/production.json: "appID": "1164562920689523",
/path/to/000001_000079/vehicle/production.json: "tire_id": "1815123428733289",
/path/to/000001_000079/vehicle/production.json: "appID": "18412365908966538",
/path/to/000001_000088/vehicle/production.json: "tire_id": "138477888324",
-f FILE seçeneğiHer satırda aranacak pattern olan dosya belirtilir.
Örnek ver
-i, --ignore-case seçeneği
Örnek
Şöyle yaparız. Büyük küçük harf farkı gözetmeden tüm "sahil" kelimelerini bulur
[root@localhost playground]# cat file1.loghelloi am sahili am software engineerSahil is a software engineersahil is a software engineer[root@localhost playground]# grep -i 'sahil' file1.logi am sahilSahil is a software engineersahil is a software engineer[root@localhost playground]#
-v seçeneği
invert match anlamına gelir. Aranan şeye uymayanları gösterir.
Örnek
Elimizde şöyle iki dosya olsun.
$ echo -e "a\nb\nc\nd" > list1
$ echo -e "c\nd\ne\nf" > list2
list1'de olup list2'de olmayanları görmek için şöyle yaparız. Burada komuta parametre olarak önce list2 geçiliyor.$ grep -vxFf list2 list1
a
b
Eşleşmeyi sadece kelimeler için yapar. Açıklaması şöyle
Select only those lines containing matches that form whole words. The test is that the matching substring must either be at the beginning of the line, or preceded by a non-word constituent character.
Örnek
Şöyle yaparız. Burada -E ile bir regex verilmiş ancak sadece kelimelere uygulanıyor
$ echo '1341 5415 fdad' | grep -wE "[1-9]{1,5}" -o
1341
5415
Yani aslında şununla aynı şey. regex'in başına ve sonuna \b getirilmesi ile gibi
echo '1341 5415 fdad' | grep -E -o '\b[1-9]{1,5}\b'
Örnek
if grep -wq -- "$user" "$file1" && grep -wq -- "$user" "$file2" ; then
echo "string avail in both files"
elif grep -wq -- "$user" "$file1" "$file2"; then
echo "string avail in only one file"
fi
Örnek ver