SORU
22 Ocak 2009, PERŞEMBE


Küresel arama ve değiştirme Linux komut satırı

Ve tüm dosyalar bir linux makine üzerinde grep ile eşleşen bir dize aramak ve değiştirmek için çalışıyorum. Yapmak istediğim bir kaç parça var ama hepsini dize için nasıl emin değilim.

grep -n 'foo' * beni şeklinde çıktı verecektir:

[filename]:[line number]:[text]

Her dosya grep döndürdüğü için, "" "" ve sonuç geri dosya. write bar foo değiştirmek istiyorum İyi bir yolu var mı? Süslü bir boru hattı olabilir mi?

CEVAP
23 Ocak 2009, Cuma


Bu istediğin şey için, verdiğin örnek dayalı görünür:

sed -i 's/foo/bar/g' *

Özyinelemeli (alt dizinleri inecek değil) değil. Bir ağaç boyunca iyi bir çözüm seçili dosyaların yerini bulmak için kullanmak istiyorsunuz:

find -name '*.html' -print -exec sed -i.bak 's/foo/bar/g' {} \;

*.htmldosyaları uyması gerektiğini ifade etmektedir.baksonra-benorijinal dosyanın bir kopyasını yapar .uzantısı (istediğiniz herhangi bir uzantısı olabilir) ve bakgsed sonunda ifade sed tek bir satırda birden çok kopya (yerine sadece ilki) yerini söyler.-yazdırınbulmaktır dosyaları bahisler ediliyordu göstermek için bir kolaylık. Tüm bu sistem bu araçlar tam sürüm bağlıdır.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Boiler Room

    Boiler Room

    10 Mayıs 2012
  • BrandonHarrisWalker

    BrandonHarri

    27 Kasım 2006
  • TecnoTutosPC

    TecnoTutosPC

    19 Kasım 2012