sed Case Insensitive Search Matching

by on March 14, 2008 · 3 comments· LAST UPDATED December 14, 2008

in , ,

Q. How do I perform a case-insensitive search using sed under UNIX / Linux? I'd like to match all combination of word - foo, FOO, FoO and so on while replacing or performing other operations.

A. GNU sed and other version does support a case-insensitive search using I flag after /regex/.

UNIX / Linux: sed Case Insensitive Search

To perform a case-insensitive search, enter:

cat file.txt | sed -e 's/find-word/replace-word/gI'
cat file.txt | sed -e 's/find-word/replace-word/gI' > output.txt
sed 's/find-word/replace-word/gI' input.txt > output.txt

If you are using older sed version try,

sed 's/[wW][oO][rR][dD]/replace-word/g' input.txt > output.txt

It is easy to match first few characters, for example match both Linux and linux word:

sed 's/[Ll]inux/Unix/g' input.txt > output.txt
TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 3 comments… read them below or add one }

1 Ni2 December 21, 2009 at 7:48 am

$ echo Cool | sed -n “/cool/Ip”

Reply

2 Ni2 December 21, 2009 at 7:53 am

sed version 4.1.5.

Thanks for the tip. This is exactly what I was looking for.

Reply

3 skymaster September 26, 2013 at 10:14 am

sed -n -e ‘/patternmatch/Ip’ filetosearchin

Reply

Leave a Comment

Tagged as: , , , , , , ,

Previous Faq:

Next Faq: