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

6 Answers

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
7

GNU sed

sed '/first/Ii This line to be added' file

You can try

sed 's/first/somethingelse/gI'

if you want to save some typing, try awk. I don't think sed has that option

 awk -v IGNORECASE="1" '/first/{your logic}' file

For versions of awk that don't understand the IGNORECASE special variable, you can use something like this:

awk 'toupper($0) ~ /PATTERN/ { print "string to insert" } 1' file

Convert each line to uppercase before testing whether it matches the pattern and if it does, print the string. 1 is the shortest true condition, so awk does the default thing: { print }.

To use a variable, you could go with this:

awk -v var="$foo" 'BEGIN { pattern = toupper(foo) } toupper($0) ~ pattern { print "string to insert" } 1' file

This passes the shell variable $foo and transforms it to uppercase before the file is processed.

Slightly shorter with bash would be to use -v pattern="${foo^^}" and skip the BEGIN block.

Use the following, \b for word boundary

sed 's/\bfirst\b/This line to be added/Ig' file

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

David Miller

David Miller

Executive Financial & Market Analyst

David Miller brings 15 years of experience in global economics, personal finance strategy, and market dynamics. He specializes in turning complex economic trends into actionable insights for everyday readers.

Share this article
Twitter Facebook Pinterest