remove/replace text/path in config file.

Lot of times I end up changing a particular text in config file to some other text. And when I have to do it for multiple files, all files having the text in multiple places, I end up opening the files in vim and then doing a globlal replace. But this is not efficient so I cam up with some one liners to do this for me. For removing any occurance of text in all files in the directory :

for i in $(grep -l \’text-to-remove\’  *) ; do sed \’s@text-to-remove@@\’ $i >${i}.new; mv $i{,.bak}; mv $i{.new,}; done

And if you want to replace the text then the same command with little change in sed command:

for i in $(grep -l \’text-to-replace\’ *) ; do sed \’s@text-to-replace@new-text@\’ $i >${i}.new; mv $i{,.bak}; mv $i{.new,}; done

About Amit Agarwal