Örneklerle Linux/Unix'te Pipe, Grep ve Sort Komutu
⚡ Akıllı Özet
Linux ve Unix'te pipe, grep ve sort komutları metni zincirleme ve filtreleme işlevi görür: pipe bir komutun çıktısını bir sonrakine aktarır, grep kalıpları arar ve sort satırları düzenlerken, filter komutları verileri aralarında dönüştürür.

Pipes, grep ve sort, en çok kullanılan araçlar arasındadır. Linux Komut satırı, küçük komutları güçlü bir iş akışına bağlamanıza olanak tanıdığı için tercih edilir. Bu sayfa, her birini örneklerle açıklıyor ve ardından filtrelerin bunları nasıl bir araya getirdiğini gösteriyor.
Linux'ta Pipe nedir?
Linux'ta "pipe" komutu, bir komutun çıktısının bir sonraki komutun girdisi olarak kullanılmasını sağlayan bir komuttur. Kısaca, her işlemin çıktısı, bir boru hattı gibi, doğrudan bir sonrakine girdi olarak beslenir. '|' sembolü bir boruyu ifade eder.
Borular, iki veya daha fazla komutu aynı anda birleştirmenize ve ardışık olarak çalıştırmanıza yardımcı olur. Karmaşık görevleri anında gerçekleştiren güçlü komutlar kullanabilirsiniz.
Bunu bir örnekle anlayalım.
Birden fazla sayfaya yayılan bir dosyayı görüntülemek için 'cat' komutunu kullandığınızda, komut istemi hızla dosyanın son sayfasına atlar ve ortadaki içeriği göremezsiniz.
Bunu önlemek için, 'cat' komutunun çıktısını 'less' komutuna yönlendirebilirsiniz; bu komut size her seferinde yalnızca bir kaydırma uzunluğu kadar içerik gösterir.
cat filename | less
Bir görsel bunu daha net açıklayacaktır. Aşağıdaki diyagram, bir borunun bir komutun çıktısını bir sonrakine nasıl aktardığını göstermektedir.
'pg' ve 'daha fazla' komutları
'Less' yerine 'pg' veya 'more' komutunu da kullanabilirsiniz:
cat Filename | pg
or
cat Filename | more
Ardından dosyayı sindirilebilir parçalar halinde görüntüleyebilir ve Enter tuşuna basarak aşağı doğru kaydırabilirsiniz. Aşağıdaki ekran görüntüsü, "more" komutuyla sayfalandırılmış bir dosyayı göstermektedir.
'Grep' komutu
Örneğin, bir metin dosyasında posta kodu gibi belirli bir bilgiyi aramak istediğinizi varsayalım.
İçeriği kendiniz de manuel olarak inceleyebilirsiniz. tracBilgiyi kullanın. Daha iyi bir seçenek ise şunu kullanmaktır: grep Bu komut, belgeyi istenen bilgiler için tarar ve sonucu istediğiniz formatta sunar.
Sözdizimi:
grep search_string
Şimdi bunu uygulamada görelim. Aşağıdaki ekran görüntüsü aramanın sonucunu göstermektedir.
Burada, grep komutu 'sample' dosyasında 'Apple' ve 'Eat' kelimelerini aradı. Bu komutla aşağıdaki seçenekler kullanılabilir.
| Opsiyon | İşlev |
|---|---|
| -v | Aranan dizeyle eşleşmeyen tüm satırları gösterir |
| -c | Yalnızca eşleşen satırların sayısını görüntüler |
| -n | Eşleşen satırı ve numarasını gösterir |
| -i | Hem büyük hem de küçük harfleri eşleştirir. |
| -l | Dize içeren dosyanın yalnızca adını gösterir |
Yukarıda kullanılan aynı dosya üzerinde '-i' seçeneğini deneyelim. Aşağıdaki ekran görüntüsü, büyük/küçük harf duyarlılığı olmayan sonucu göstermektedir.
'-i' seçeneği kullanılarak, grep tüm satırlardan 'a' dizesini (büyük/küçük harf duyarlılığı olmaksızın) filtreledi.
'Sırala' komutu
Bu komut, bir dosyanın içeriğini alfabetik olarak sıralamaya yardımcı olur.
Bu komutun sözdizimi şöyledir:
sort Filename
Aşağıda cat komutuyla gösterilen bir dosyanın içeriğini inceleyin.
Sıralama komutunu çalıştırmak, bu satırları aşağıda gösterildiği gibi alfabetik sıraya göre düzenler.
Bu komutun uzantıları da mevcuttur ve bunlar aşağıda listelenmiştir.
| Opsiyon | İşlev |
|---|---|
| -r | Reversesıralama |
| -n | Sayısal olarak sıralar |
| -f | Büyük/küçük harf duyarlılığı olmayan sıralama |
Aşağıdaki örnek 'abc' dosyasındaki içeriklerin ters sıralamasını göstermektedir.
Filtre Nedir?
Linux'ta awk, grep, sed, spell ve wc gibi birçok filtre komutu bulunur. Filtre, bir komuttan girdi alır, bazı işlemler yapar ve çıktı verir.
İki komutu ardışık olarak çalıştırdığınızda, ilk komutun 'filtrelenmiş' çıktısı bir sonrakine verilir. Aşağıdaki diyagram, bir filtrenin ardışık işlem hattına nasıl uyduğunu göstermektedir.
Bunu bir örnek yardımıyla anlayalım. Aşağıda kediyle gösterilen 'sample' adlı bir dosyamız var.
Yalnızca 'a' karakterini içermeyen satırları vurgulamak istiyoruz, ancak sonuç ters sırada olmalı. Bunun için aşağıdaki sözdizimi kullanılabilir:
cat sample | grep -v a | sort -r
Aşağıdaki ekran görüntüsünde gösterilen sonuca bakalım.







.png)
.png)

