sed Case Insensitive Search Matching

by on March 14, 2008 · 2 comments· last updated at December 14, 2008

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


You should follow me on twitter here or grab rss feed to keep track of new changes.

Featured Articles:

{ 2 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

Leave a Comment

You can use these HTML tags and attributes for your code and commands: <strong> <em> <ol> <li> <u> <ul> <kbd> <blockquote> <pre> <a href="" title="">

Tagged as: , , , , , , ,

Previous Faq:

Next Faq: