Bash Bir dosyadaki her satır için

Bash Each Line File



Bash'deki For döngüsü, birden çok görevi gerçekleştirmek için farklı varyasyonlarla kullanılabilir. Böyle bir varyasyon, bir dosyadaki tüm satırları okumaktan sorumlu olan dosyadaki her satır için. Bu yazımızda Bash'te dosyadaki her satır için kullanma yöntemlerinden bahsedeceğiz.

Not: Aşağıda gösterilen yöntemler Ubuntu 20.04'te gösterilmiştir. Ancak, diğer Linux dağıtımlarıyla da iyi çalışırlar.







Bash'deki dosyadaki her satır için kullanma yöntemleri:

Bu yöntemlerde size bir dosyadan her satırı okuyabileceğiniz ve ardından onu terminalde görüntüleyebileceğiniz veya hatta bu satırları başka bir dosyada saklayabileceğiniz bir örnek göstereceğiz. Bu yöntemlerin her ikisine de bir göz atalım.



Yöntem 1: Terminalde Okuma Satırlarını Görüntülemek İçin:

Bir dosyanın satırlarını dosyadaki her satır için kullanarak terminalde görüntülemek için aşağıdaki adımları uygulamanız gerekecektir:



Adım # 1: Sahte Metin Dosyası Oluşturma:

Her şeyden önce, gösteri uğruna bazı rastgele veriler içeren bir metin dosyası oluşturmanız gerekir. Bu metin dosyası herhangi bir yerde oluşturulabilmesine rağmen, onu Ana klasörde oluşturmanız şiddetle tavsiye edilir. Bunu yapmak için, aşağıda gösterilen resimde vurgulanan Dosya Yöneticisi simgesine tıklayın:





  • Sahte Metin Dosyası Oluşturma

    Şimdi Ana klasörünüzde herhangi bir yeri sağ tıklayın ve beliren menüden Yeni Belge seçeneğini seçin. Ardından Belgeyi Boşalt seçeneğini seçin. Ana klasörünüzde boş bir belge oluşturulduktan sonra, bunun için tercih ettiğiniz adı ve ardından .txt uzantısını girin. Bu örnekte, ForEachLine.txt olarak adlandırdık.

  • Sahte Metin Dosyası Oluşturma2
    Açmak için bu metin dosyasına çift tıklayın ve ardından aşağıdaki resimde gösterildiği gibi herhangi bir rastgele metni yazın. Bunu yaptıktan sonra bu dosyayı kaydedin ve kapatın.



  • Sahte Metin Dosyası Oluşturma3

    Adım # 2: Bash Komut Dosyasını Oluşturma:

    Şimdi, Home klasöründe metin dosyasını oluşturduğunuz şekilde bir Bash dosyası oluşturun, ancak bu sefer adını ve ardından .txt uzantısı yerine .sh uzantısını sağlamalısınız. Bash dosyamızı ForEachLine.sh olarak adlandırdık ama siz ona istediğiniz ismi verebilirsiniz.
    Bash Komut Dosyası Oluşturma

    Bu dosyayı üzerine çift tıklayarak açın ve ardından yeni oluşturduğunuz Bash dosyanıza aşağıdaki resimde gösterilen betiği yazın. Burada, aşağıdaki betiğin bir Bash betiği olduğunu belirtmek için ilk satır var. Basitçe File adında bir değişken yarattık ve ona metin dosyamızın adını, yani ForEachLine.txt olarak atadık. Daha sonra Lines adında bir değişken yarattık ve onu $(cat $File) değerine eşitledik. Burada cat komutu, metin dosyamızın içeriğini okur ve önüne bir $ sembolü geldiğinde, bu komut tarafından okunan içerikler Lines değişkeninde saklanır. Bu şekilde ForEachLine.txt adlı dosyanın tüm satırları Lines değişkeninde saklanacaktır. Daha sonra yineleyici Line olan For döngüsünü uyguladık. Bu yineleyici, yukarıda oluşturduğumuz Lines değişkeni üzerinde çalışır ve tüm satırları tek tek yineler. Daha sonra do-done bloğunda, echo komutunu kullanarak tüm bu satırları terminalde basitçe görüntüledik.
    Bash Komut Dosyasını Oluşturma2

    Adım # 3: Bash Komut Dosyasını Çalıştırma:

    Şimdi terminali Ubuntu 20.04'te başlatın ve ardından yukarıda oluşturulan Bash betiğini yürütmek için aşağıdaki komutu çalıştırın:
    bash ForEachLine.sh
    Bash Komut Dosyasını Çalıştırma

    Bu komut bash betiğini çalıştırdığında, metin dosyanızın tüm satırlarını aşağıdaki resimde gösterildiği gibi terminalinizde görebileceksiniz:
    Bash Komut Dosyasını Çalıştırma

    Yöntem # 2: Tüm Okuma Satırlarını Başka Bir Dosyaya Kaydetmek İçin:

    Bu yöntemde, tüm okuma satırlarını terminalde görüntülemek yerine yeni bir metin dosyasına kaydetmek için yukarıdaki yöntemde oluşturulan Bash betiğini biraz değiştirdik. Bunu yapmak için aşağıda belirtilen adımları uygulayın:

    Adım # 1: Yukarıda Oluşturulan Bash Komut Dosyasını Değiştirme ve Çalıştırma:

    Yukarıdaki yöntemde oluşturduğunuz Bash betiğini açın ve aşağıdaki resimde gösterildiği gibi değiştirin. Do-done bloğundaki echo komutundan sonra yeni bir dosya adının ardından >> sembolünü ekledik. Bu değişiklik, tüm okuma satırlarını terminalde görüntülemek yerine yeni bir metin dosyasına kaydedecektir. Şimdi Bash komut dosyasını terminal üzerinden tekrar bash komutu ve ardından Bash dosya adı ile çalıştırın. Bu sefer Bash betiği çalıştığında, bu durumda adı NewFile.txt olan yeni bir metin dosyası oluşturacaktır.
    Yukarıda Oluşturulan Bash Komut Dosyasını Değiştirme ve Çalıştırma1

    Adım # 2: Yeni Oluşturulan Metin Dosyasına Erişim:

    Tüm okunan satırların yeni metin dosyasına kaydedildiğini doğrulamak için, terminalinizde aşağıdaki komutu çalıştırarak o dosyanın içeriğini görüntüleyebilirsiniz:
    kedi YeniFile.txt
    Yeni Oluşturulan Metin Dosyasına Erişim
    Aşağıdaki resimde gösterilen çıktı, tüm okuma satırlarının yeni metin dosyasına kopyalandığını size garanti edecektir.
    Yeni Oluşturulan Metin Dosyasına Erişmek2

    Çözüm:

    Bu şekilde for dosyasındaki her satırı kullanarak bir dosyanın tüm satırlarını okuyabilir ve daha sonra bu satırlarla manipüle edebilirsiniz. Bu yazıda sadece iki temel senaryodan bahsettik, ancak bu döngüyü daha karmaşık problemler için bile kullanabilirsiniz.