Ben sadece bir günlük dosyasında okumak, arama yapmak ve değiştirmek ve değişiklikleri aynı günlük dosyasına yazmak istiyorum.Perl: Bir dosya ile döngü ve yerine
Perl'de bunu yapmanın en iyi yolu nedir?
perl -i -pe 's/some/thing/' log.file
Ben sadece bir günlük dosyasında okumak, arama yapmak ve değiştirmek ve değişiklikleri aynı günlük dosyasına yazmak istiyorum.Perl: Bir dosya ile döngü ve yerine
Perl'de bunu yapmanın en iyi yolu nedir?
perl -i -pe 's/some/thing/' log.file
Normalde bu için bir astar kadar kod
perl -pi.bak -e "s/find/replace/g" <file>
Not -i.bak
kısmı - Bu, .bak
uzantısıyla bir yedekleme dosyası oluşturur. (... Eğer perl sorulduğunda biliyorum)
perl -pi -e "s/find/replace/g" <file>
Bu, genellikle, tek bir astar ile yapılır: Bkz
veya sed
kullanabilirsiniz: Eğer internetsiz oynamak istiyorsanız bir destek olmadan varolan dosyanın üzerine yazmak için bunu yapabilirsiniz
sed -i 's/find/replace/g' <file>
Sed, normal ifade kurallarını ele alış biçiminde ... Perl'dan daha farklı, en azını söylemek. – GJTorikian
Ancak neden geri dönüşleri kullanamıyorum? Gibi perl -pi -e "s/foo (. *) Bar/bar $ 1foo /" tezt2 çalışmıyor .. –
Kabuğunuz muhtemelen dizgiyi bozuyor. "" Lerinizi "* ile değiştirmeyi deneyin, böylece * genişlemez. –
Teşekkürler bu yaptı! –