So, I have an "isolated system" (not internet connected) under "configuration management" with perl on it. I have an XML file that I'd like parse the extract and format specific information from it.
"Normally" I'd install some XML perl module. But being "isolated" I can't download it. And even if I was able to "configuration management" says no new software without a shit ton of red tape just for a few little packages. Scripts that an admin writes in an exception.
The XML file is a Nessus scanner results file. The section that I want to extract are between <RemoteHost> and </RemoteHost> for several servers in the file. For each RemoteHost section I'd like to only pull sections like the hostname, CVEs (list), and synopsis (multi line).
I've tried using the flip-flop operator but it just gives me everything. If there's a way to pick and choose what parts I want; I don't know how to do it.
Any suggestions?
#! /usr/bin/perl use strict; use warnings; use FileHandle; my $file; if (-e $ARGV[0]){ $file = $ARGV[0]; hostreport(); } else { die; } sub hostreport { open(my $fh, "<file"); while (<$fh>){ print if (/^\<ReportHost/../^\<\ReportHost>/); } } print $file;
In reply to No tools? Use Perl?! by Boyd.Ako
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |