Bash vs Python для DevOps инженеров и системных администраторов
İçindekiler:
- Dosya Satırına Göre Sözdizimi Okuma
- Dosyayı Satır Satır Örnekleriyle Okuma
- Alternatif Dosya Okuma Yöntemleri
- İşlem Değiştirme Kullanma
- Here Dizesini Kullanma
- Dosya tanımlayıcıyı kullanma
- Sonuç
Bash komut dosyaları yazarken, bazen bir dosyayı satır satır okumanız gereken durumlarda bulacaksınız. Örneğin, komut dosyası tarafından işlenmesi gereken verileri içeren bir metin dosyanız olabilir.
Bu derste, Bash'te bir dosyayı satır satır nasıl okuyacağımızı tartışacağız.
Dosya Satırına Göre Sözdizimi Okuma
Dosyayı satır satır okumak için en genel sözdizimi aşağıdaki gibidir:
while IFS= read -r line do echo "$line" done < input_file
veya eşdeğer tek satırlı sürüm:
while IFS= read -r line; do echo $line; done < input_file
O nasıl çalışır?
Girdi dosyası (
input_file
),
read
komutuyla
read
için açık olmasını istediğiniz dosyanın adıdır.
read
komutu, her satırı
line
değişkenine atayarak dosyayı satır satır okur. Tüm satırlar işlendikten sonra while döngüsü sonlanır. Dahili alan ayırıcısı (
IFS
),
read
komutunun varsayılan davranışı olan öndeki ve arkadaki boşlukları korumak için boş dizeye ayarlanır.
Dosyayı Satır Satır Örnekleriyle Okuma
Aşağıdaki örneğe bakalım. En popüler Linux dağıtımlarından bazılarının ve virgül (
,
) ile ayrılmış paket yöneticilerinin bir listesini içeren
distros.txt
adında bir dosyamız olduğunu varsayalım:
Ubuntu, apt Debian, apt CentOS, yum Arch Linux, pacman Fedora, dnf
Dosyayı satır satır okumak için terminalinizde aşağıdaki kodu çalıştırırsınız:
while IFS= read -r line do echo "$line" done < distros.txt
Kod, dosyayı satır satır okuyacak, her satırı bir değişkene atayacak ve değişkeni yankılayacaktır. Temel olarak, cat içeriğini kullanarak dosya içeriğini görüntüleyeceğinizle aynı çıktıyı görürsünüz.
Yalnızca apt kullanan dağıtımları yazdırmak isterseniz ne olur? Bunun bir yolu if ifadesini kullanmak ve satırın apt alt dizesini içerip içermediğini kontrol etmektir:
while IFS= read -r line do if]; then echo "$line" fi done < distros.txt
Ubuntu, apt Debian, apt
Dosyayı satır satır okurken, satırı
IFS
temel alan alanlara ayıracak olan okuma komutuna birden fazla değişken de iletebilirsiniz. İlk alan ilk değişkene, ikincisi ikinci değişkene atanır ve bu böyle devam eder. Değişkenlerden daha fazla alan varsa, kalan alanlar son değişkene atanır.
Aşağıdaki örnekte, IFS'yi virgül (
,
) olarak ayarlıyoruz ve iki değişken
distro
ve
distro
read komutuna
distro
. Satırın başlangıcından ilk virgüle kadar her şey ilk değişkene (
distro
) ve hattın geri kalanı ikinci değişkene (
pm
) atanacaktır:
while IFS=, read -r distro pm do echo "$pm" is the package manager for "$distro" done < distros.txt
apt is the package manager for Ubuntu apt is the package manager for Debian yum is the package manager for CentOS pacman is the package manager for Arch Linux dnf is the package manager for Fedora
Alternatif Dosya Okuma Yöntemleri
İşlem Değiştirme Kullanma
İşlem ikamesi, komuttan çıktıyı bir dosya adı olarak geçirmenizi sağlar:
while IFS= read -r line do echo "$line" done < <(cat input_file)
Here Dizesini Kullanma
Here: String, Here belgesinin bir çeşididir. Dize
(cat input_file)
yeni satırları saklar:
while IFS= read -r line do echo "$line" done <<< $(cat input_file)
Dosya tanımlayıcıyı kullanma
Bir dosya tanımlayıcı kullanarak döngüye girişi de sağlayabilirsiniz:
while IFS= read -r -u9 line do echo "$line" done 9< input_file
Dosya tanımlayıcılarıyla çalışırken, kabuk dahili dosya tanımlayıcılarıyla çakışmayı önlemek için 4 ile 9 arasında bir sayı kullanın.
Sonuç
Bash'te, bir while okuma döngüsüne giriş olarak dosya adını girerek bir dosyayı satır satır okuyabiliriz.
bash terminaliDeğişiklikleri için Dosyaları Denetle a0> a0> a0> a0> a0> a0> a0> a0> a0> a0> a0> a0> a0> a0> a0> <... Bir dosyayı benzersiz bir şekilde tanımlayan karakter dizisi, dijital parmak izi. Bir dosyanın birkaç baytını bile değiştirin - örneğin, bir virüs bulaştırarak veya eski bir sürümü yenisiyle değiştirerek - ve sağlama toplamı değişir. Marxio File Checksum Verifier (ücretsiz / donationware), belirli bir dosya için bir sağlama toplamı oluşturacak ve dah
Marxio File Checksum Verifier işlemde çok basittir. Bir dosyayı pencereye sürükleyin veya standart bir dosya iletişim kutusunu kullanarak birini seçin. Ardından MD5 veya CRC32 gibi bir sağlama toplamı algoritması seçin. (Bu aracın hedef kitlesi iseniz, bu şeylerin ne anlama geldiğini bilirsiniz.) Ardından, dosyanın bilinen bir sürümünden bir sağlama toplamını alt metin kutusuna yapıştırın ve kontrol edin! Marxio, eşleşip eşleşmediğini çabucak anlatacak. (Çok büyük dosyalar biraz zaman alabilir,
Okuma Hacmi Okuma Ağırlığı E-Okuyucular Üzerindeki Daha Yavaş Okuma Hızının Etkisi
Yakın tarihli bir çalışma, hevesli okuyucuların daha yavaş e okuma eğiliminde olduğunu keşfetmiştir. Okuyucular, ancak ortalama okuyucuların geleneksel basılı kitaplardan çok daha fazla okunabileceğini düşünmüyorlar.
CloudConvert kullanarak herhangi bir dosyayı bir kerede farklı biçimlere dönüştürün: Herhangi bir dosyayı bir defada farklı biçimlere dönüştürün
CloudConvert, kullanıcıların birden çok dosyayı farklı biçimlere aynı anda dönüştürmesine yardımcı olur. 200`den fazla dosya formatını destekleyen web tabanlı bir dosya dönüştürücüsüdür.