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. Boru hatları (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 pipeline'lar 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 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 dört 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
  • Benzersiz isimleri saymak için wc -l komutuna aktarır

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

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