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

  • girleffect

    girleffect

    20 Mayıs 2008
  • Nick Pitera

    Nick Pitera

    8 NİSAN 2006
  • Samantha Crain

    Samantha Cra

    30 EKİM 2008