Try adding the -a
or --binary-file=text
options
grep -aE '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' file.pcap
or
grep --binary-file=text -E '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' file.pcap
This appears to work for a random pcap file that I downloaded from wiki.wireshark.org i.e.
$ grep -E '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' NTLM-wenchao.pcap
Binary file NTLM-wenchao.pcap matches
but
$ grep -aE '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' NTLM-wenchao.pcap
Host: 192.168.0.55
Host: 192.168.0.55
Host: 192.168.0.55
Location: http://192.168.0.55/default.aspx
MicrosoftSharePointTeamServices: 12.0.0.6421
<body><h1>Object Moved</h1>This document may be found <a HREF="http://192.168.0."_?"_Ea@yÀ¨[À¨ÃPþµû%RÑ_Pü>ÕGET /default.aspx HTTP/1.1
Host: 192.168.0.55
etc.
Be aware of the warning (from the man page man grep
) that
If TYPE is text, grep processes a binary file as if it
were text; this is equivalent to the -a option. Warning: grep
--binary-files=text might output binary garbage, which can have
nasty side effects if the output is a terminal and if the
terminal driver interprets some of it as commands.
Note that although you can use the \d
regex (for digit), it is only supported by grep in PCRE mode (i.e. with the -P
switch).
You ask grep to print all lines that contain a pattern consisting of a character that is not a 8, 3 or 4. Depending on what your file consists of, this will probably find almost anything.
To show "everything but" grep has the -v switch. E.g. something like grep -v "8\|3\|4" should work. Or if you specifically want to throw out the number 834: grep -v 834
Best Answer
Your command would actually count the number of lines containing
/
in the standard output of command/home/usr/bin/test
Here are some options to count the instances of
/
in the string/home/usr/bin/test
: