X

Bash komutu ile dosya içindeki bir satırı topluca değiştirmek (linux üzerinde)

Bash komutu ile dosya içindeki bir satırı topluca değiştirmek (linux üzerinde)

Elimizde yüzlerce hatta binlerce dosya olduğunu düşünelim. Bunların uzantıları html, xml, txt, conf vs.. olabilir. Yapacağınız işlemler tek tek manuel olarak fazlaca zamanınızı alacaktır ya da o işten vazgeçeceksiniz. Konuyu olabilecek en basit şekli ile özetleyip devam edelim.

Örnek:

Elimde yüzlerce xml uzantılı dosya var ve bu dosyaların içindeki merhaba kelimesini selam kelimesi ile değiştirmek istiyorum. Bunun için dosyaların bulunduğu dizine girip uçbirim (terminal-konsol-komut penceresi) açıyorum ve şu parametreyi giriyorum:

find ./ -name “*.xml” -exec sed -i “s/merhaba/selam/g” {} \;

Enter’a bastıktan sonra dosyalarımı kontrol ediyorum ve ne kadar merhaba var ise selam olmuş durumda. Yukarıdaki satırdaki *.xml yerine değişiklik yapılacak dosyalarınızın uzantılarını yazmalısınız. merhaba yerine değişmesi gereken kelime yada satır, selam yerine üzerine yazacağınız yeni kelimeniz ya da satırınız gelecektir.

Dilerseniz bunu bir bash betik dosyası haline de getirip çalıştırabilirsiniz.

Bilmem anlatabildim mi?

 

demiray:
Related Post