A quick tip: since more than a year now I’ve been including xml output with each nmap scan I perform. I discovered that the xml output contains more (explicit) data than the other forms of output.
Example:
nmap -oG test.csv -oX test.xml scanme.nmap.org Starting Nmap 5.51 ( http://nmap.org ) at 2013-11-23 05:05 EST Nmap scan report for scanme.nmap.org (74.207.244.221) Host is up (0.65s latency). Not shown: 997 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 9929/tcp open nping-echo Nmap done: 1 IP address (1 host up) scanned in 1.19 seconds
The grepable output:

The xml output:
