Android

Bash: dosyaya ekle

Bash Script Ders-11 (Dosya İçerisine Metin Ekleme)

Bash Script Ders-11 (Dosya İçerisine Metin Ekleme)

İçindekiler:

Anonim

Bash'te bir dosyaya metin eklemenin birden çok yolu vardır. Bu makalede bazıları açıklanmaktadır.

Bir dosyaya metin eklemek için, dosyaya yazma izninizin olması gerekir. Aksi takdirde, izin verilmedi hatası alırsınız.

Yeniden Yönlendirme İşlecini Kullanarak Dosyaya Ekleme ( >> )

Yeniden yönlendirme, bir komuttan çıktı almanızı ve başka bir komut veya dosyaya girdi olarak göndermenizi sağlar. >> yeniden yönlendirme operatörü, çıktıyı belirli bir dosyaya ekler.

Metni standart çıktıya yazdırmak ve dosyaya yönlendirmek için kullanabileceğiniz birkaç komut vardır, echo ve printf en çok kullanılanlardır.

Bir dosyaya metin eklemek için, yeniden yönlendirme işlecinden sonra dosyanın adını belirtin:

echo "this is a new line" >> file.txt

-e seçeneğiyle kullanıldığında echo komutu, newline gibi ters eğik çizgiden kaçan karakterleri yorumlar.

echo -e "this is a new line \nthis is another new line" >> file.txt

Daha karmaşık çıktılar üretmek istiyorsanız, çıktının biçimlendirmesini belirtmenizi sağlayan printf komutunu kullanın:

printf "Hello, I'm %s.\n" $USER >> file.txt

Bir dosyaya metin eklemenin başka bir yolu da Here belgesini (Heredoc) kullanmaktır. Bir komuta birden çok girdi satırı geçirmenizi sağlayan bir yönlendirme türüdür.

Örneğin, içeriği cat komutuna iletebilir ve bir dosyaya ekleyebilirsiniz:

cat «EOF» file.txt Geçerli çalışma dizini: $ PWD Oturum açtığınız yer: $ (whoami) EOF

Herhangi bir komutun çıktısını bir dosyaya ekleyebilirsiniz. date komutuyla bir örnek:

date +"Year: %Y, Month: %m, Day: %d" >> file.txt

Yeniden yönlendirme kullanarak bir dosyaya eklerken, varolan önemli bir dosyanın üzerine yazmak için > işleci kullanmamaya dikkat edin.

tee Komutunu kullanarak Dosyaya Ekleme

tee , Linux'ta standart girdiden okuyan ve aynı anda hem standart çıktıya hem de bir veya daha fazla dosyaya yazan bir komut satırı yardımcı programıdır.

Varsayılan olarak, tee komutu belirtilen dosyanın üzerine yazar. Çıktıyı dosyaya eklemek için -a ( --append ) seçeneğiyle tee --append kullanın:

echo "this is a new line" | tee -a file.txt

echo "this is a new line" | tee -a file.txt >/dev/null

tee komutunu >> işleci üzerinde kullanmanın avantajı, tee aynı anda birden çok dosyaya metin eklemenize ve sudo ile birlikte diğer kullanıcıların sahip olduğu dosyalara yazmanıza izin vermesidir.

Yazma izniniz olmayan bir dosyaya metin eklemek için, aşağıda gösterildiği gibi sudo önce tee ekleyin:

echo "this is a new line" | sudo tee -a file.txt

tee , echo komutunun çıktısını alır, sudo izinlerini yükseltir ve dosyaya yazar.

Birden fazla dosyaya metin eklemek için, dosyaları tee komutuna bağımsız değişken olarak belirtin:

echo "this is a new line" | tee -a file1.txt file2.txt file3.txt

Sonuç

Linux'ta bir dosyaya metin eklemek için >> yeniden yönlendirme işleci veya tee komutunu kullanın.

bash terminali