vi Editor Find And Replace String Commands
Syntax:
:%s/Search String/Replace String/g
Examples
Fundamental Find and Replace
Replace MYSQL with ORACLE
:%s/MYSQL/ORACLE/g
Find and Replace with Confirmation
:%s/MYSQL/Oracle/gc
Case sensitive Find and Replace
:%s/MYSQL/oracle/gI
Case Insensitive Find and Replace
:%s/mysql/Oracle/gi
Find and Replace In the Current Line Only
:s/MYSQL/Oracle/g
Current line is the line where cursor is located
Find and Replace Between Specific Line
:{START-n},{END-n}s/word1/word2/g
Example, find and replace between 100 and 150 line
:100,150s/MYSQL/Oracle/g
Find and Replace Between Specific Line to Current Line
:1,.s/mysql/oracle/
Current line is the line where cursor is located which can be specified as a single dot (.).
Find and Replace Between Current line to Last Line
:,,$s/mysql/oracle/
Current line is the line where cursor is located which can be specified as a single dot (.).
Find and Replace Between Current Line to n Next Line
:.,+ns/mysql/oracle/
Here n is the number of line.
Example:
You want to replace from current to next 10 lines
:.,+10s/mysql/oracle/
Find and Replace Between Current Line to n Above Line
:.,-ns/mysql/oracle/
Here n is the number of line.
Example:
You want to replace from current to above 10 lines.
:.,-10s/mysql/oracle/
Find and Replace with some extra condition
In this example the command will search and replace those line where the line have keyword Oracle
Oracle 4546
Mysql 4546
SAP 4546
DB2 4546
Oracle 4546
Excess 4546
Oracle 4546
:g/Oracle/s/4546/0000/g
After replacing
Oracle 0000
Mysql 4546
SAP 4546
DB2 4546
Oracle 0000
Excess 4546
Oracle 0000
In this example the command will search and replace those line where the line dont have keyword Oracle, this is the opposite of above example.
Oracle 4546
Mysql 4546
SAP 4546
DB2 4546
Oracle 4546
Excess 4546
Oracle 4546
:v/Oracle/s/4546/0000/g
Oracle 4546
Mysql 0000
SAP 0000
DB2 0000
Oracle 4546
Excess 0000
Oracle 4546