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
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.
Örnekte bir DVD linux komut satırı csv...
Vim: küresel arama ve değiştirme, imle...
Nasıl php bulmak için.dosya komut satı...
Böyle büyük mükafat 4.4 ve Komut Satır...
Node.JS Linux Komut satırını kullanara...