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

  • boniver

    boniver

    17 NİSAN 2006
  • EmperorTigerstar

    EmperorTiger

    14 EYLÜL 2009
  • SomeOne Pro

    SomeOne Pro

    25 EKİM 2013