I would like to search for lines that contain "uploaded" but do not contain "09"
Is there a way to do this with grep?
(CentOS 5.6 if it matters).
Server Fault is a question and answer site for system and network administrators. It only takes a minute to sign up.Sign up to join this community
I usually chain greps to do this.
grep uploaded $file | grep -v 09
You can use the -v option to grep to invert the match so
grep uploaded file | grep -v 09
will do what you want. This finds the lines that contain uploaded which are passed piped into a grep command to ignore lines with 09 in them.
This isn't using
grep - but anytime I have a need that requires more than a basic
grep, I turn to my favorite,
sed. Certainly any time I have to chain
grep commands together...
Use this command to do it:
sed -n '/09/d; /uploaded/p' file
Just one single command (not two).
( grep -v 09 | grep uploaded ) < file
$ cat file 1 uploaded 09 2 09 3 uploaded 4 text $ ( grep -v 09 | grep uploaded ) < file 3 uploaded