I want to have tcpdump write raw packet data into a file and display packet analysis in standard output as the packets are captured (by analysis I mean the lines it displays normally when -w is missing). Can anybody please tell me how to do that?
Here's a neat way to do what you want:
tcpdump -w - | tee somefile | tcpdump -r -
What it does:
-w -
tells tcpdump
to write binary data to stdout
tee
writes that binary data to a file AND to its own stdout
-r -
tells the second tcpdump
to get its data from its stdin