Mann Mann - 5 months ago 23
Linux Question

Use sed with ignore case while adding text before some pattern

sed -i '/first/i This line to be added'


In this case,how to ignore case while searching for pattern =first

Answer

You can use the following:

sed 's/[Ff][Ii][Rr][Ss][Tt]/last/g' file

Otherwise, you have the /I and n/i flags:

sed 's/first/last/Ig' file

From man sed:

I

i

The I modifier to regular-expression matching is a GNU extension which makes sed match regexp in a case-insensitive manner.

Test

$ cat file
first
FiRst
FIRST
fir3st
$ sed 's/[Ff][Ii][Rr][Ss][Tt]/last/g' file
last
last
last
fir3st
$ sed 's/first/last/Ig' file
last
last
last
fir3st
Comments