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

  • 07cadikiz07

    07cadikiz07

    17 EKİM 2007
  • Charles Renaud

    Charles Rena

    10 Kasım 2007
  • RD

    RD

    19 NİSAN 2006