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
Featured Articles:
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- My 10 UNIX Command Line Mistakes
- Linux: 20 Iptables Examples For New SysAdmins

- 25 PHP Security Best Practices For Sys Admins
- The Novice Guide To Buying A Linux Laptop
- 10 Greatest Open Source Software Of 2009
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- Top 20 OpenSSH Server Best Security Practices
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Linux Video Editor Software
Facebook it - Tweet it - Print it -


{ 2 comments… read them below or add one }
$ echo Cool | sed -n “/cool/Ip”
sed version 4.1.5.
Thanks for the tip. This is exactly what I was looking for.