Menu
Coddy logo textTech

Birden Fazla Komutu Zincirleme

Coddy'nin Terminal Journey'sinin Temeller bölümünün bir parçası — ders 45 / 82.

Sadece iki komutu birbirine bağlamakla sınırlı değilsiniz. Borular (Pipes), her biri bir önceki komutun çıktısını işleyecek şekilde, ihtiyacınız olan sayıda komutu birbirine zincirleyebilir.

Boru hattını genişletmek için daha fazla | sembolü eklemeniz yeterlidir:

cat data.txt | sort | head -5

Bu, dosyayı okur, tüm satırları alfabetik olarak sıralar ve ardından yalnızca ilk 5 sonucu gösterir. Veri, her bir komut boyunca sırayla soldan sağa doğru akar.

İşte benzersiz sıralanmış girdileri bulan pratik bir örnek:

cat names.txt | sort | uniq

Dosya içerikleri önce sıralanır (bu, kopyaları bir araya getirir), ardından uniq ardışık kopya satırları kaldırır. Burada sıra önemlidir — uniq yalnızca bitişik kopyaları kaldırır, bu nedenle önce sıralama yapılmalıdır.

Daha fazla aşama ekleyebilirsiniz. Kaç tane benzersiz ismin mevcut olduğunu saymak için:

cat names.txt | sort | uniq | wc -l

Her pipe, başka bir dönüşüm adımı ekler. Daha uzun boru hatları oluştururken, her komutun girdi olarak neye ihtiyaç duyduğunu ve çıktı olarak ne ürettiğini düşünün. Bir komutun çıktı formatı, bir sonraki komut için girdi olarak anlamlı olmalıdır.

challenge icon

Görev

Kolay

visitors.txt dosyası, yinelenen isimlerin bulunduğu bir ziyaretçi listesi içerir. Kaç tane benzersiz ziyaretçi olduğunu saymak için üç komutlu bir boru hattı (pipeline) kullanın.

Şunları yapan tek bir komut çalıştırın:

  • visitors.txt dosyasını okumak için cat kullanır
  • İsimleri alfabetik olarak düzenlemek için sort komutuna aktarır (pipe)
  • Yinelenen girişleri kaldırmak için uniq komutuna aktarır (pipe)
  • Benzersiz isimleri saymak için wc -l komutuna aktarır (pipe)

İpucu: Birden fazla | sembolü kullanarak dört komutun hepsini birbirine bağlayın. uniq komutunun yalnızca bitişik kopyaları kaldırdığını, bu nedenle sıralamanın ondan önce gelmesi gerektiğini unutmayın.

Kopya kağıdı

Borular (Pipes), her bir komutun bir öncekinin çıktısını işlemesini sağlayarak birden fazla komutu birbirine bağlayabilir. Komutları bağlamak için | sembolünü kullanın:

cat data.txt | sort | head -5

Veri, her bir komut üzerinden sırayla soldan sağa doğru akar.

Benzersiz sıralanmış girdileri bulmak için:

cat names.txt | sort | uniq

uniq komutu ardışık yinelenen satırları kaldırır, bu nedenle kopyaları bir araya getirmek için önce sıralama yapılmalıdır.

Benzersiz girişleri saymak için işlem hattına (pipeline) wc -l ekleyin:

cat names.txt | sort | uniq | wc -l

İşlem hatları oluştururken, bir komutun çıktı formatının bir sonraki komut için girdi olarak anlamlı olduğundan emin olun.

Kendin dene

Terminal
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler