When parsing files that contain sections like this, you can make life a lot easier by setting $/ (see $INPUT_RECORD_SEPARATOR) to a string that will allow you to read in a whole section at a time. This is considerably easier than trying to parse line by line and remember where you are.
In this case, each section appears to be separated by two lines of underscores, so by setting $/="_\n_";, each read using <FILE> will grab an entire section at a time. You can then parse each chunk in one go by using the /s modifier on your regexes. As each server has two consequetive sections that are delimited in the same way, you need to skip the second section that you are not interested in by performing a read within the loop and discarding the results.
Some code, that needs lots of work, to get you started
#! perl -slw use strict; local $/ = "_\n_"; # Define the End of record to be _\n_ (section bre +ak). while( <DATA> ) { my ($server, $total, $used, $avail) = m[ _\n([\w.]+) # Server name follows the first \n after + an _ .* # skip stuff until ... \nTOTAL:\s+(\d+) # the total line .* # skip more until ... \nUSED:\s+(\d*) # the used line .* # skip more until ... \nAVAILABLE:\s+(\d+) # the AVAILABLE line ]xs; # ignore witespace in regex and allow . +to match \n printf "%30s: Total:%9s Used:%9s Free:%9s\n", $server, $total, $us +ed, $avail; <DATA>; # read (and discard) the detail stuff. } __DATA__ ______________________________________________________________________ +__________ sis4.snap.synapticcorp.com Tue Apr 15 08:00:01 EDT 2003 ______________________________________________________________________ +__________ Filesystem Type kbytes use avail %use Mounted on /dev/root xfs 3913932 2203528 1710404 57 / /dev/dsk/dks0d3s0 xfs 71549580 37859480 33690100 53 /u91 /dev/dsk/dks0d5s7 xfs 71680648 61764960 9915688 87 /u93 /dev/dsk/dks0d4s7 xfs 71680648 69750044 1930604 98 /u92 /dev/dsk/dks0d6s7 xfs 35559760 19845240 15714520 56 /u94 /dev/dsk/dks0d2s7 xfs 8885572 6935320 1950252 79 /u01 TOTAL: 263270140 USED: 198358572 75.34% AVAILABLE: 64911568 24.66% ______________________________________________________________________ +__________ ______________________________________________________________________ +__________ sis8 Tue Apr 15 08:00:01 EDT 2003 ______________________________________________________________________ +__________ Filesystem kbytes used avail capacity Mounted on /dev/dsk/c0t0d0s0 1620617 1350391 221608 86% / /proc 0 0 0 0% /proc fd 0 0 0 0% /dev/fd mnttab 0 0 0 0% /etc/mnttab swap 2377840 8 2377832 1% /var/run /dev/dsk/c0t1d0s7 17615408 1963275 15475979 12% /u02 /dev/dsk/c2t0d0s7 4124422 3089923 993255 76% /u05 /dev/dsk/c3t0d0s7 17615408 868115 16571139 5% /u09 /dev/dsk/c0t2d0s7 70582546 20893160 48983561 30% /u03 /dev/dsk/c2t1d0s7 4124422 3089923 993255 76% /u06 /dev/dsk/c0t0d0s7 6541250 4131033 2344805 64% /u01 /dev/dsk/c0t3d0s7 4124422 4083027 151 100% /u04 /dev/dsk/c3t1d0s7 17615408 952763 16486491 6% /u10 /dev/dsk/c2t3d0s7 4124422 1061275 3021903 26% /u08 /dev/dsk/c3t3d0s7 17615408 865803 16573451 5% /u12 /dev/dsk/c3t2d0s7 17615408 3228715 14210539 19% /u11 /dev/dsk/c3t2d0s7 17615408 3228715 14210539 19% /u11 /dev/dsk/c2t2d0s7 4124422 1061275 3021903 26% /u07 /dev/dsk/c4t0d0s7 8705501 119827 8498619 2% /u13 /dev/dsk/c5t0d0s7 70582546 15049876 54826845 22% /u17 /dev/dsk/c4t1d0s7 8705501 677051 7941395 8% /u14 /dev/dsk/c4t2d0s7 8705501 8138339 480107 95% /u15 /dev/dsk/c5t1d0s7 70582546 27119611 42757110 39% /u18 /dev/dsk/c4t3d0s7 8705501 805667 7812779 10% /u16 /dev/dsk/c5t2d0s7 70582546 17826331 52050390 26% /u19 swap 2379704 1872 2377832 1% /tmp /dev/dsk/c5t3d0s7 70582546 4713811 65162910 7% /u20 /dev/dsk/c1t3d0s7 45192698 627 44740145 1% /u21 TOTAL: 554545993 USED: 121091698 21.84% AVAILABLE: 427924004 77.17% ______________________________________________________________________ +__________ ______________________________________________________________________ +__________ lemon.snap.synapticcorp.com Tue Apr 15 08:00:00 EDT 2003 ______________________________________________________________________ +__________ Filesystem 1024-blocks Used Availab +le Capacity Mounted on u-rz9a#root 862032 350099 5119 +33 41% / /proc 0 0 + 0 100% /proc u-rz9g#usr 1536000 857331 6516 +40 57% /usr u-rz9h#var 512000 103959 3964 +48 21% /var u-rz9d#app 768000 516420 2484 +56 68% /app TOTAL: 3678032 USED: 1827809 49.70% AVAILABLE: 1808477 49.17% ______________________________________________________________________ +__________ ______________________________________________________________________ +__________ sis8 Tue Apr 15 08:00:01 EDT 2003 ______________________________________________________________________ +__________ Filesystem kbytes used avail capacity Mounted on /dev/dsk/c0t0d0s0 1620617 1350391 221608 86% / /proc 0 0 0 0% /proc fd 0 0 0 0% /dev/fd mnttab 0 0 0 0% /etc/mnttab swap 2377840 8 2377832 1% /var/run /dev/dsk/c0t1d0s7 17615408 1963275 15475979 12% /u02 /dev/dsk/c2t0d0s7 4124422 3089923 993255 76% /u05 /dev/dsk/c3t0d0s7 17615408 868115 16571139 5% /u09 /dev/dsk/c0t2d0s7 70582546 20893160 48983561 30% /u03 /dev/dsk/c2t1d0s7 4124422 3089923 993255 76% /u06 /dev/dsk/c0t0d0s7 6541250 4131033 2344805 64% /u01 /dev/dsk/c0t3d0s7 4124422 4083027 151 100% /u04 /dev/dsk/c3t1d0s7 17615408 952763 16486491 6% /u10 /dev/dsk/c2t3d0s7 4124422 1061275 3021903 26% /u08 /dev/dsk/c3t3d0s7 17615408 865803 16573451 5% /u12 /dev/dsk/c3t2d0s7 17615408 3228715 14210539 19% /u11 /dev/dsk/c3t2d0s7 17615408 3228715 14210539 19% /u11 /dev/dsk/c2t2d0s7 4124422 1061275 3021903 26% /u07 /dev/dsk/c4t0d0s7 8705501 119827 8498619 2% /u13 /dev/dsk/c5t0d0s7 70582546 15049876 54826845 22% /u17 /dev/dsk/c4t1d0s7 8705501 677051 7941395 8% /u14 /dev/dsk/c4t2d0s7 8705501 8138339 480107 95% /u15 /dev/dsk/c5t1d0s7 70582546 27119611 42757110 39% /u18 /dev/dsk/c4t3d0s7 8705501 805667 7812779 10% /u16 /dev/dsk/c5t2d0s7 70582546 17826331 52050390 26% /u19 swap 2379704 1872 2377832 1% /tmp /dev/dsk/c5t3d0s7 70582546 4713811 65162910 7% /u20 /dev/dsk/c1t3d0s7 45192698 627 44740145 1% /u21 TOTAL: 554545993 USED: 121091698 21.84% AVAILABLE: 427924004 77.17% ______________________________________________________________________ +__________
Output
D:\Perl\test>260369 sis4.snap.synapticcorp.com: Total:263270140 Used:198358572 Free: 6 +4911568 lemon.snap.synapticcorp.com: Total: 3678032 Used: 1827809 Free: +1808477
In reply to Re: couple of file content manipulation questions
by BrowserUk
in thread couple of file content manipulation questions
by vxp
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |