Ubuntu – How to replace strings in file without regex

10.04bashcommand lineregexsed

I need to replace some strings in files (from command line) but I don't want to use sed -i because my string contains lots of funny characters which need to be correctly escaped. Is there a way to turn off regex and just replace plain string?

Best Answer

You may have better luck using perl - which supports literal string matching via the \Q (quoted sentence) modifier e.g.

perl -pe 's/\Qstring/replacement/g'

See for example this article Perl Regular Expression Syntax at boost.org