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 -5Bu, 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 | uniqDosya 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 -lHer 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.
Görev
Kolayvisitors.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.txtdosyasını okumak içincatkullanır- İsimleri alfabetik olarak düzenlemek için
sortkomutuna aktarır (pipe) - Yinelenen girişleri kaldırmak için
uniqkomutuna aktarır (pipe) - Benzersiz isimleri saymak için
wc -lkomutuna aktarır (pipe)
İpucu: Birden fazla
|sembolü kullanarak dört komutun hepsini birbirine bağlayın.uniqkomutunun 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 -5Veri, her bir komut üzerinden sırayla soldan sağa doğru akar.
Benzersiz sıralanmış girdileri bulmak için:
cat names.txt | sort | uniquniq 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
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
4Dizinler
Bir Dizin OluşturBir Dizin KopyalaBir Dizin Taşı ve Yeniden AdlandırBir Dizin SilÖzet - Dizin İşlemleri7Dosya İçeriği
Head ve TailKelime SayısıSort KomutuUnik KomutuGrep TemelleriBayraklarla GrepÖzet - Metin Dedektifi10Günlük Analizörü Projesi
Proje Genel BakışıGünlük Dosyasını Görüntüleme2Navigasyon
Çalışma Dizini'ni YazdırDosyaları ListeleDizin DeğiştirMutlak ve Göreli YollarEv ve Kök DizinÖzet - Yolunu Bul8Yönlendirme
Standart ÇıktıDosyaya Üzerine YazmaDosyaya EklemeStandart GirdiStandart HataÖzet - Günlük Oluşturucu3Dosyalar
Bir Dosya OluşturBir Dosya OkuBir Dosya KopyalaBir Dosyayı Taşı ve Yeniden AdlandırBir Dosya SilÖzet - Dosya İşlemleri6Joker Karakterler ve Desenler
Yıldız Joker KarakteriSoru İşareti Joker KarakteriKöşeli Parantez JokerleriJoker Karakterleri BirleştirmeÖzet - Seçici İşlemler9Borulama
Boru Nedir?İki Komutu ZincirlemeBirden Fazla Komutu ZincirlemeGrep ile BoruÖzet - Veri Boru Hattı