20.05.2009

sed ile replace

sed (stream editor) kullanirken bir dosya icindeki stringi baska biri ile degistirmek istedigimde eskiden,

$ sed s/{eski}/{yeni}/ {dosya_adi} seklinde kullaniyordum.Bu kullanimda sed sonucu bir dosyaya yazmiyor, ekranda gosteriyordu. Ayni dosyaya kaydetmek icinse ciktiyi gecici bir dosyaya yazip sonra o dosyanin icerigini eski dosyaya tasiyordum.Yani:

$ sed s/{eski}/{yeni}/ {dosya_adi} > /tmp/gecici && cat /tmp/gecici > {dosya_adi} && rm -f /tmp/gecici

Peki sed'in i parametresi varken ne demeye ugrasyirdum o kadar??

$ sed -i s/{eski}/{yeni}/ {dosya_adi} ile bu isi kokten cozuyoruz.

Unutmamak lazim, paylasmak lazim