Splunk Search

Use of "NOT" vs "!="

Contributor

I'm working on a search which should return all events, except those where the "User_Name" or the "Account_Name" fields end with a "$".

If I use this

(NOT (User_Name="*$" OR Account_Name="*$"))

I get the reuslts I expect. However if I use

User_Name!="*$" Account_Name!="*$"

I don't get any results.

In my mind, those two statements should produce the same results. What is it I'm not seeing?

1 Solution

Legend

The difference is that with != it's implied that the field exists, but does not have the value specified. So if the field is not found at all in the event, the search will not match.

NOT field= on the other hand will check if the field has the specified value, and if it doesn't for whatever reason, it will match.

View solution in original post

Legend

The difference is that with != it's implied that the field exists, but does not have the value specified. So if the field is not found at all in the event, the search will not match.

NOT field= on the other hand will check if the field has the specified value, and if it doesn't for whatever reason, it will match.

View solution in original post

New Member

It helps a lot.

0 Karma

Legend

Yeah, because that would say 'User_Name exists and it doesn't match "*$" OR Account_Name exists and it doesn't match "*$"'.

Contributor

Ahh. Well that helps. So jsut for further clarification, I could solve the problem and still use != if I did:

User_Name!="*$" OR Account_Name!="*$"

Assuming I know for sure that all events will have one (and only one) of those fields.

0 Karma
Don’t Miss Global Splunk
User Groups Week!

Free LIVE events worldwide 2/8-2/12
Connect, learn, and collect rad prizes
and swag!