≡ Menu

sed Case Insensitive Search Matching

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
Tweet itFacebook itGoogle+ itPDF itFound an error/typo on this page?

{ 3 comments… add one }

  • Ni2 December 21, 2009, 7:48 am

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

  • Ni2 December 21, 2009, 7:53 am

    sed version 4.1.5.

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

  • skymaster September 26, 2013, 10:14 am

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

Leave a Comment