SORU
8 ŞUBAT 2009, Pazar


Bir Metin İçinde Bul ve Değiştir bir Bash Komut Dosyası

Belirli bir giriş için Bul ve değiştir bir dize, söyle ** 0, /tmp/file.txt dosya başka bir dize ile, say XYZ değiştirmek için en kolay yolu nedir?

Bir uygulama yazma ve IronPython SSH-ile komutları çalıştırmak için kullanıyorum; ama Unix o kadar iyi tanımıyorum ve Ne aramak için bilmiyorum.

Bash, komut satırında olmasının dışında, çok güçlü bir betik dili olabileceğini duydum. Eğer bu doğruysa, bu gibi eylemleri gerçekleştirebilirsiniz sanırım.

Bash ile bunu yapabilir miyim, ve benim hedefe ulaşmak için (bir satır) en basit komut nedir?

CEVAP
8 ŞUBAT 2009, Pazar


En kolay yolu sed (veya perl) kullanmak için:

sed -i -e 's/abc/XYZ/g' /tmp/file.txt

Sed yerinde bir düzenleme -i seçeneği nedeniyle bunu çağırmak olacak. Bu bash çağrılabilir.

Eğer gerçekten sadece bash kullanmak istiyorsanız, o zaman aşağıdaki geçici:

while read a ; do echo ${a//abc/XYZ} ; done < /tmp/file.txt > /tmp/file.txt.t ; mv /tmp/file.txt{.t,}

Bu, her satır üzerinde bir değişiklik yapmadan, geçici bir dosya için (giriş hırpalamak istemiyorum) yazma döngüsü. Sonunda taşınmak özgün adı geçici taşır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 1881 Animation

    1881 Animati

    5 EKİM 2013
  • picster

    picster

    20 NİSAN 2006
  • theavettbrothers

    theavettbrot

    9 ŞUBAT 2007