2016-04-11 34 views
0

bu sed komutused çıkışlar doğru konsolda değişim ancak dosyanın

sudo sed "s/192[^:]\+ /192.168.56.109/" file 

komut çıkışlarını doğru değişiklikle tam dosya kullanarak dosyayı düzenlemek için çalışıyorum, ancak hiçbir şekilde düzeltmez düzenlemek değil dosya. Dosyayı açarsam, öncekiyle aynı.

+0

Inplace düzenleme için '-i 'seçeneğine (man sayfasına bakın) ihtiyacınız var ya da bir geçici dosyaya çıktı vermek ve temp dosyasını ikinci adımda taşımak zorundasınız. –

+0

-i çalışmıyor. Ben denedim,> 'sudo sed-i/192 [^:] \ + /192.168.56.109/" dosya ' –

+0

Olası çoğaltılamaz [sed dosyayı yerinde düzenleyin] (http://stackoverflow.com/ sorular/12696125/sed-düzenleme-yerinde-dosya) –

cevap

0

inplace -i seçenek bu

sed "s/192[^:]\+ /192.168.56.109/" file > temp && mv temp file 

Gerçi bir yedek olduğundan emin olun yapabilirsiniz çalışmıyorsa.

+0

Farklı dosyalardaki bu hareketli veri yükü olmadan çalışamaz mı? –

+0

'mv' verileri taşımaz, sadece dosya tanıtıcısı. – karakfa

+0

İyi! > 'Sudo sed-i/192 [^:] \ + /192.168.56.109/ 'file' denedim, yerine> quot sudo sed -i' s/192 [^:] \ + /192.168 .56.109/"dosya" ve bu benim için çalıştı ... teşekkürler :) –