SORU
30 Mayıs 2011, PAZARTESİ


Grep kullanarak ve bir dize bulmak yerine sed

Aşağıdaki dizin belirli bir dize için özyinelemeli olarak arama ve başka bir ile değiştirmek için kullanıyorum:

grep -rl oldstr path | xargs sed -i 's/oldstr/newstr/g'

Bu iyi çalışır. Tek sorun, eğer dize yok eğer doğru değilse o zaman sed herhangi bir argüman almaz çünkü başarısız olur. Bu sed başarısız yana, otomatik olarak bu KARINCA ve yapı hataları ile çalışan olduğum için benim için bir sorun.

Bir yol dizesi bulunamadı durumda başarısız geçirmez hale getirebilirsiniz.

Kullanabileceğim bir satır basit bir çözüm (mutlaka bu gibi ortak unıx komutları ile grep sed) ilgileniyorum.

CEVAP
30 Mayıs 2011, PAZARTESİ


find -exec doğrudan ilk grep 10 *bulma yerine sed içine kullanabilirsiniz. Belki biraz daha az etkili, ama o kadar da önemli olmayabilir. Bu şekilde, sed yedek tüm dosyaları find tarafından listelenen üzerinden yürütülen ama eğer oldstr değil ama belli ki üzerinde ameliyat yapamaz.

find /path -type f -exec sed -i 's/oldstr/newstr/g' {} \;

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Matus Slovak

    Matus Slovak

    5 Temmuz 2007
  • o0oCyrusViruso0o

    o0oCyrusViru

    11 Mart 2008
  • SDSARG3

    SDSARG3

    14 Mart 2009