Sed kullanarak arama ve değiştirme için grep
egrep -R düzenli ifade hakkında 10 sendikalar, gibi içeren izledi kullanıyorum:
.jpg | .png | .gif vb. Bu iyi çalışıyor, artık tüm dizeleri .bmp ile buldu değiştirilmesini istiyorum
Bir şey gibi düşünüyordum
egrep -lR "\.jpg|\.png|\.gif" . | sed "s/some_expression/.jpg/" file_it_came_form
konu buraya nasıl sed benzer Birliği düzenli bir anlatım yapacağım ve nasıl girdi, onu bu dosyaya değişiklikleri kaydetmek için söylerim.
CEVAP
Bu komutu kullanın:
egrep -lRZ "\.jpg|\.png|\.gif" . \
| xargs -0 -l sed -i -e 's/\.jpg\|\.gif\|\.png/.bmp/g'
egrep: eşleşen satırları genişletilmiş düzenli ifadeler kullanarak bulabilirsiniz-l: sadece eşleşen dosya adları listesi-R: arama özyinelemeli tüm dizinleri verildi-Z: kayıt ayırıcı olarak\0kullanın"\.jpg|\.png|\.gif": dizeleri".jpg",".gif"".png"bir maç.: geçerli dizindeki . aramayı başlatmak
xargs: değişken olarak stdın ile bir komut Çalıştır-0: kayıt ayırıcı olarak\0kullanın. Bu önemliegrep-Zmaça giriş ve dosya adlarında boşluk ve yeni satır tarafından korunmak için.-l: komut başına bir hat olarak kullanılıyor
sed:*s*akışı *ed*editörü-i: giriş çıkış ile bir dosya yedekleme yapmadan değiştirin-e: aşağıdaki ifade bağımsız değişkeni olarak kullanın's/\.jpg\|\.gif\|\.png/.bmp/g': bu dizeleri tüm tekrarlarını".bmp"28*,* 29 ** 30 *değiştirin

Nasıl (arama) gıt tarihinde kaydedilmi...
't don dosyaları bulmak için grep...
Nasıl birden fazla satır grep kullanar...
Kullanarak metin içeren arama için XPA...
Nasıl Linux üzerinde grep ile dosyalar...