I have a word like "mode v" in a file. I want to replace it to "mode sv". However all my efforts failed as there is space after mode
You can have
sed do the search and replacement like so.
$ sed 's/mode v/mode sv/g'
Say I have this sample file:
$ cat afile.txt mode v modev mode v blah blah blah modev mode blah modev mode v
I can use
sed to search/replace this file and preserve a backup like so:
$ sed -i.bak 's/mode v/mode sv/g' afile.txt
I now have 2 files:
$ ls -ltr | grep afile -rw-rw-r--. 1 slm slm 64 Sep 23 20:13 afile.txt.bak -rw-rw-r--. 1 slm slm 67 Sep 23 20:15 afile.txt
With the changes made to the origianl:
$ cat afile.txt mode sv modev mode sv blah blah blah modev mode blah modev mode sv
NOTE: If you need it to be a guaranteed word boundary you can suffix the
mode v in the search with a
$ sed -i.bak 's/mode v\b/mode sv/g' afile.txt
Your solution from comment works only if mode is the very first word in the line and replaces everything after "mode " with "sv". From your question I believe this is not your intention. There is no reason to complicate things, simple
sed 's/mode /mode s/g'
should work. Alternatively
sed s/"mode "/"mode s"/g