SORU
23 Temmuz 2009, PERŞEMBE


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
23 Temmuz 2009, PERŞEMBE


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 \0 kullanı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 \0 kullanın. Bu önemli egrep -Z maç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

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ColdfusTion

    ColdfusTion

    3 Aralık 2007
  • Erica Griffin

    Erica Griffi

    8 HAZİRAN 2009
  • Kassem G

    Kassem G

    25 EKİM 2006