📝 Metin İşleme & Pipe'lar

Metin İşleme & Pipe'lar: Linux pipe (`|`), bir process'in standart çıktısını (stdout) doğrudan bir sonraki process'in standart girdisine (stdin) bağlar; ara dosya olmadan küçük,

Linux pipe (`|`), bir process'in standart çıktısını (stdout) doğrudan bir sonraki process'in standart girdisine (stdin) bağlar; ara dosya olmadan küçük, tek amaçlı araçlardan veri-işleme pipeline'ı kurar. Bunu Java'nın Stream API'sindeki zincirlemeyle aynı şekilde düşün: `lines.filter(...).map(...).count()` — her adım veriyi dönüştürür ve bir sonrakine teslim eder, hiçbir ara `List` diske yazılmaz. Ama şu düşünce deneyi: `grep` zaten bağımsız bir komut olarak varken, neden onu `cat` ve `wc -l` ile zincirleyip tek büyük bir "eşleşen satırları say" komutu yazmıyoruz? Çünkü birleştirilebilirlik, monolitik araçları geçer — `grep "FAILED"` tek başına kullanışlıdır, `wc -l` ile birleşince hata sayar, `sort | uniq -c` ile birleşince hataları frekansa göre sıralar; bu kombinasyonların hiçbiri için yeni bir komut yazılmasına gerek yoktur. QA çalışması için CI'daki pratik fark şudur: 50.000 satırlık bir test logunu bir editörde manuel açmak yerine `grep "ERROR" test.log | grep -v "ExpectedError" | wc -l` yazıp iki saniyede kesin hata sayısını almak — pipe zinciri senin komut satırı Stream API'ndir ve her QA automation mühendisi sözdizimini araştırmaya gerek kalmadan bir tane kurabilmelidir.

Dosyaları Görüntülemek

Arama terimini belirle

"timeout" kelimesini arıyoruz ama log'da "Timeout", "TIMEOUT" gibi varyasyonlar da olabilir.

-i ile case-insensitive yap

grep -i "timeout" app.log artık büyük/küçük harf farkı gözetmeden eşleşir.

-n ile satır numarası ekle

grep -in "timeout" app.log çıktısı artık 12:Connection timeout after 30s şeklinde satır numarasıyla başlar.

Eşleşen her satır ayrı bir satırda listelenir; eşleşme yoksa grep hiçbir şey yazdırmaz ve exit code 1 döner.

grep -in "timeout" app.log | wc -l ile kaç tane timeout hatası olduğunu tek satırda sayabilirsin.

Bir log dosyasında büyük/küçük harf duyarsız arama yapıp satır numarasıyla bulma sürecini sırala.

Aranacak kelimeyi belirle: "timeout"

-i bayrağı ekle: büyük/küçük harf farkını yok say

-n bayrağı ekle: satır numarasını göster