Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am using pyrit. For those who dont know, pyrit allows among other things to check if a wpa handshake key is valid:

pyrit -r file0.cap analyze 

when a file does not contain a valid key, here is the output:

Parsing file 'file0.cap' (1/1)...
 AccessPoint e0:xx:xx:xx:xx:xx ('AP_name0'):
No valid EAOPL-handshake + ESSID detected.

Now I am just wondering why when issuing:

pyrit -r file0.cap analyze | grep good 

it always gives me (when there is no valid handshake key) :

No valid EAOPL-handshake + ESSID detected.

when there is a valid key, it works; we have the following output:

HMAC_SHA1_AES, good, spread 1
share|improve this question
up vote 7 down vote accepted

I think it is because this line

No valid EAOPL-handshake + ESSID detected.

is probably standard error of the pyrit command, not standard out. Normally, | pipes standard out to the next command, with the standard error written immediately to the terminal. Instead, if you want to pass both standard error and out through the pipe, then you can use |&. i.e.

pyrit -r file0.cap analyze |& grep good 
share|improve this answer
:thanx; I will have learned something today! – blue_xylo Aug 14 '14 at 10:51
No worries! (Was that it? This was a bit of a guess, since I am not familiar with pyrit. Does it work as expected with |&?) – Sparhawk Aug 14 '14 at 10:52

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.