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

  • Ionized Digital Air Studios

    Ionized Digi

    20 HAZİRAN 2009
  • Jordie Jordan

    Jordie Jorda

    27 Ocak 2008
  • superemposed

    superemposed

    25 Aralık 2007