Output formatting help

Output formatting help

am 01.08.2011 10:54:35 von newbie01 perl

--0016e6433954cfc37e04a96dc76d
Content-Type: multipart/alternative; boundary=0016e6433954cfc37704a96dc76b

--0016e6433954cfc37704a96dc76b
Content-Type: text/plain; charset=ISO-8859-1

Hi all,

I have several *nix version of Unix and while some I can use df -h, for some
I can't. The only common thing that I can use that works for all is df -k.

========================================
Below is the output when running df -k:
========================================

Filesystem kbytes used avail capacity Mounted on
/dev/md/dsk/d1 8268461 4133009 4052768 51% /
/proc 0 0 0 0% /proc
mnttab 0 0 0 0% /etc/mnttab
fd 0 0 0 0% /dev/fd
/dev/md/dsk/d3 8268461 5751241 2434536 71% /var
swap 46176776 64 46176712 1% /var/run
dmpfs 46176712 0 46176712 0% /dev/vx/dmp
dmpfs 46176712 0 46176712 0% /dev/vx/rdmp
swap 53453216 7276504 46176712 14% /tmp
/dev/md/dsk/d4 16526762 8075725 8285770 50% /opt
/dev/vx/dsk/dg_volarch/SUNWspro
6094894 5173296 860650 86% /opt/SUNWspro.local
/dev/vx/dsk/dg_volarch/volarch
83886080 61130760 22577632 74% /vx_mnt/volarch
aklns001:/vol/vol_admin/public
322355200 291922136 30433064 91% /nas_mnt/public
/dev/odm 0 0 0 0% /dev/odm
aklns002:/vol/vol_admin/prodhome
33646592 25395656 8250936 76% /home/users
/vol/dev/dsk/c0t0d0/sol_10_1008_sparc
2599020 2599020 0 100%
/cdrom/sol_10_1008_sparc
aklns003-va2:/vol/vol_aftp/aftp/app
48179200 39619484 8559716 83%
/nas_mnt/aklns022/app_aftp
/dev/vx/dsk/dg_ico/prod01_db
188743680 136754136 51583424 73%
/vx_mnt/db/prod01
/dev/vx/dsk/dg_ico/prod01_app
52428800 31237744 21030000 60% /vx_mnt/app/prod01

Interestingly, if I re-direct the output to a file, I get one line for each
which is a lot better than the screen output. For example, if I do df -k >
/tmp/x, the contents of /tmp/x is as below:


Filesystem kbytes used avail capacity Mounted on
/dev/md/dsk/d1 8268461 4133009 4052768 51% /
/proc 0 0 0 0% /proc
mnttab 0 0 0 0% /etc/mnttab
fd 0 0 0 0% /dev/fd
/dev/md/dsk/d3 8268461 5750757 2435020 71% /var
swap 45929352 64 45929288 1% /var/run
dmpfs 45929288 0 45929288 0% /dev/vx/dmp
dmpfs 45929288 0 45929288 0% /dev/vx/rdmp
swap 53205808 7276520 45929288 14% /tmp
/dev/md/dsk/d4 16526762 8079410 8282085 50% /opt
/dev/vx/dsk/dg_volarch/SUNWspro 6094894 5173296 860650 86%
/opt/SUNWspro.local
/dev/vx/dsk/dg_volarch/volarch 83886080 61184016 22524792 74%
/vx_mnt/volarch
aklns001:/vol/vol_admin/public 322355200 291933108 30422092 91%
/nas_mnt/public
/dev/odm 0 0 0 0% /dev/odm
aklns002:/vol/vol_admin/prodhome 33646592 25395684 8250908 76%
/home/users
/vol/dev/dsk/c0t0d0/sol_10_1008_sparc 2599020 2599020 0 100%
/cdrom/sol_10_1008_sparc
aklns003-va2:/vol/vol_aftp/aftp/app 48179200 39619484 8559716 83%
/nas_mnt/aklns022/app_aftp
/dev/vx/dsk/dg_ico/prod01_db 188743680 136754136 51583424 73%
/vx_mnt/db/prod01
/dev/vx/dsk/dg_ico/prod01_app 52428800 31239768 21027992 60%
/vx_mnt/app/prod01

I've attached a screenshot of the desired output that am hoping to have.
Tried to paste the manual formatting that I did but it comes out jagged
similar to the output to a file.

At the moment, only way I can think of getting the kind of formatting that
am wanting to have is to do as below:
- Read each line of the df output where each column of the line is a
separate field
- Count the number of characters for each respective field
- Note down what is the max characters for each respective field, this will
be the max number of characters + 10 for each field, each column that is
less than this max characters will be padded with spaces
- Then print out each line left-justified using Perl print formatting

Not sure if this is the best way to format the output to the one that I want
to but can't think of any way of doing it.

Preferably, would want to be able to show the df output in GB/MB as well.
That means I have to do my own conversion since some of the Solaris/*nix
that I have does not have the -h option. That should be the next objective
once I've figure out how to do the format thingy.

BTW, am using the system command or backticks to run df -k.

Hopefully, the df output to file will always be one line for each. Any
suggestion will be much appreciated. Thanks in advance.

--0016e6433954cfc37704a96dc76b
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable


y: courier new,monospace;">Hi all,
new,monospace;">
le=3D"font-family: courier new,monospace;">I have several *nix version of U=
nix and while some I can use df -h, for some I can't. The only common t=
hing that I can use that works for all is df -k.

mily: courier new,monospace;">

==================== ===3D=
=================3D
: courier new,monospace;"> ;">Below is the output when running df -k:
courier new,monospace;">
==================== =====3D=
===============3D
ier new,monospace;">

t-family: courier new,monospace;"> onospace;">Filesystem          =A0 kbytes  =A0 used=
   avail capacity=A0 Mounted on

new,monospace;">
/dev/md/dsk/d1  =A0=
  =A0 8268461 4133009 4052768  =A0 51%  =A0 /

=3D"font-family: courier new,monospace;"> r new,monospace;">/proc            =A0     =
     0       0       0     0%  =
=A0 /proc


mnttab    =A0=
              =A0 0       0  =
     0     0%  =A0 /etc/mnttab

family: courier new,monospace;"> ospace;">fd                = A0    =
  =A0 0       0       0     0%  =A0=
/dev/fd


/dev/md/dsk/d3  =A0=
  =A0 8268461 5751241 2434536  =A0 71%  =A0 /var

e=3D"font-family: courier new,monospace;"> er new,monospace;">swap            =A0= A0   461=
76776    =A0 64 46176712     1%  =A0 /var/run
style=3D"font-family: courier new,monospace;">
dmpfs      =
        =A0 46176712       0 46176712  =A0=
=A0 0%  =A0 /dev/vx/dmp

ospace;">dmpfs  =A0=
             46176712       0 46176712=
     0%  =A0 /dev/vx/rdmp

er new,monospace;">
swap      =
           53453216 7276504 46176712  =A0 14%  =
=A0 /tmp

e=3D"font-family: courier new,monospace;">/dev/md/dsk/d4       =
16526762 8075725 8285770  =A0 50%  =A0 /opt

-family: courier new,monospace;">
/dev/vx/dsk/dg_volarch/=
SUNWspro

e=3D"font-family: courier new,monospace;">          =A0=
        =A0 6094894 5173296=A0 860650  =A0 86%  =A0=
/opt/SUNWspro.local

">
/dev/vx/dsk/dg_volarch/=
volarch

=3D"font-family: courier new,monospace;">          =A0=
        =A0 83886080 61130760 22577632  =A0 74%  =
=A0 /vx_mnt/volarch

>
aklns001:/vol/vol_admin=
/public

=3D"font-family: courier new,monospace;">          =A0=
        =A0 322355200 291922136 30433064  =A0 91%  =
=A0 /nas_mnt/public

>
/dev/odm    =A0=
            =A0 0       0    =
   0     0%  =A0 /dev/odm

ourier new,monospace;">=
aklns002:/vol/vol_admin/prodhome

w,monospace;">
      =A0=
            =A0 33646592 25395656 8250936  =A0 =
76%  =A0 /home/users

ace;">/vol/dev/dsk/c0t0=
d0/sol_10_1008_sparc

">
      =A0=
            =A0 2599020 2599020       0=
   100%  =A0 /cdrom/sol_10_1008_sparc

y: courier new,monospace;"> e;">aklns003-va2:/vol/vol_aftp/aftp/app
rier new,monospace;">
      =A0=
            =A0 48179200 39619484 8559716  =A0 =
83%  =A0 /nas_mnt/aklns022/app_aftp

rier new,monospace;">/d=
ev/vx/dsk/dg_ico/prod01_db

space;">
      =A0=
            =A0 188743680 136754136 51583424  =
=A0 73%  =A0 /vx_mnt/db/prod01

new,monospace;">/dev/vx=
/dsk/dg_ico/prod01_app

e;">
      =A0=
            =A0 52428800 31237744 21030000  =A0=
60%  =A0 /vx_mnt/app/prod01

w,monospace;">

Interestingly, if I re-direct the output to a file, I get one line for each=
which is a lot better than the screen output. For example, if I do df -k &=
gt; /tmp/x, the contents of /tmp/x is as below:

ily: courier new,monospace;">


courier new,monospace;"> ">Filesystem          =A0 kbytes  =A0 used   av=
ail capacity=A0 Mounted on

space;">
/dev/md/dsk/d1  =A0=
  =A0 8268461 4133009 4052768  =A0 51%  =A0 /

=3D"font-family: courier new,monospace;"> r new,monospace;">/proc            =A0     =
     0       0       0     0%  =
=A0 /proc


mnttab    =A0=
              =A0 0       0  =
     0     0%  =A0 /etc/mnttab

family: courier new,monospace;"> ospace;">fd                = A0    =
  =A0 0       0       0     0%  =A0=
/dev/fd


/dev/md/dsk/d3  =A0=
  =A0 8268461 5750757 2435020  =A0 71%  =A0 /var

e=3D"font-family: courier new,monospace;"> er new,monospace;">swap            =A0= A0   459=
29352    =A0 64 45929288     1%  =A0 /var/run
style=3D"font-family: courier new,monospace;">
dmpfs      =
        =A0 45929288       0 45929288  =A0=
=A0 0%  =A0 /dev/vx/dmp

ospace;">dmpfs  =A0=
             45929288       0 45929288=
     0%  =A0 /dev/vx/rdmp

er new,monospace;">
swap      =
           53205808 7276520 45929288  =A0 14%  =
=A0 /tmp

e=3D"font-family: courier new,monospace;">/dev/md/dsk/d4       =
16526762 8079410 8282085  =A0 50%  =A0 /opt

-family: courier new,monospace;">
/dev/vx/dsk/dg_volarch/=
SUNWspro 6094894 5173296=A0 860650  =A0 86%  =A0 /opt/SUNWspro.loca=
l

nt-family: courier new,monospace;">/dev/vx/dsk/dg_volarch/volarch 83886080 =
61184016 22524792  =A0 74%  =A0 /vx_mnt/volarch

font-family: courier new,monospace;">
aklns001:/vol/vol_admin=
/public 322355200 291933108 30422092  =A0 91%  =A0 /nas_mnt/public<=
/span>
-family: courier new,monospace;">/dev/odm          =A0=
      =A0 0       0       0    =
0%  =A0 /dev/odm

;">
aklns002:/vol/vol_admin=
/prodhome 33646592 25395684 8250908  =A0 76%  =A0 /home/users >
ly: courier new,monospace;">/vol/dev/dsk/c0t0d0/sol_10_1008_sparc 2599020 2=
599020       0   100%  =A0 /cdrom/sol_10_1008_sparc an>

aklns003-va2:/vol/vol_a=
ftp/aftp/app 48179200 39619484 8559716  =A0 83%  =A0 /nas_mnt/aklns=
022/app_aftp

style=3D"font-family: courier new,monospace;">/dev/vx/dsk/dg_ico/prod01_db =
188743680 136754136 51583424  =A0 73%  =A0 /vx_mnt/db/prod01
=


/dev/vx/dsk/dg_ico/prod=
01_app 52428800 31239768 21027992  =A0 60%  =A0 /vx_mnt/app/prod01<=
/span>
-family: courier new,monospace;">
ew,monospace;">
I've attached a scr=
eenshot of the desired output that am hoping to have. Tried to paste the ma=
nual formatting that I did but it comes out jagged similar to the output to=
a file.


At the momen=
t, only way I can think of getting the kind of formatting that am wanting t=
o have is to do as below:
- Read each line of the df output where each c=
olumn of the line is a separate field

- Count the number of characters for each respective field
- Note down w=
hat is the max characters for each respective field, this will be the max n=
umber of characters + 10 for each field, each column that is less than this=
max characters will be padded with spaces

- Then print out each line left-justified using Perl print formatting
<=
br>Not sure
if this is the best way to format the output to the one that I want to but=
can't think of any way of doing it.

ly: courier new,monospace;">
Preferably, would want to be able to show t=
he df output in GB/MB as well. That means I have to do my own conversion si=
nce some of the Solaris/*nix that I have does not have the -h option. That =
should be the next objective once I've figure out how to do the format =
thingy.



BTW, am using the s=
ystem command or backticks to run df -k.

er new,monospace;">
;">Hopefully, the df output to file will always be one line for each. > Any suggestion will b=
e much appreciated. Thanks in advance.





--0016e6433954cfc37704a96dc76b--
--0016e6433954cfc37e04a96dc76d
Content-Type: image/gif; name="formatted-df-output.gif"
Content-Disposition: attachment; filename="formatted-df-output.gif"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gqt6sbs80

R0lGODdhNwNRAe4AAAAAQP//v7ZmQQA6g2YAQZA6QQAAbgAAWJDbvzqQqwBm l2a2v/+2bjoAQduQ
WP/bg9v/l7b/q///l7b/l9v/v7b/v///q9v/q9vbg5Dbq5C2v9uQg5A6WGaQ q7ZmbpCQqzoAWJDb
l5Bmg//bl7bbv5CQl2YAbraQgzo6g///AGZml9vbq7ZmWDqQl2a2q7a2g9u2 bmYAWDoAbra2bv+2
g7bbq9vbv//bq5A6bma2l5C2l9vbl7a2lzpml7a2q5C2g5CQbtuQbgAAAAAA AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAACwA
AAAANwNRAQAH/4AAgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGi o6SlpqeoqaqrrK2u
r7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb 3N3e3+Dh4uPk5ebn
6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7/AAMKHEiwoMGDCBMqXMiwocOHECNK nEixosWLGDNq3Mix
o8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzJqIBFAQMWhAggE6bzg4g+CnI wAQC4wZAQOoMJ1Ge
PrE51aaUaUeoASQwnTpIKFFOXoGyCjvIqNVEZKVVfcZVUNpqbf/filJgoQCA tpPkJlrrccFXtEM/
6RVb6q1ZRoOb8aWW2FrjTglWOADQwsfkSo8JLebotxDUr2lx9vwpOsDkBA8a ABA6ufTpnj3r3qUw
GkCCDRUeaIhKGFPYBD6Nquh5OvVqBA6Aw5ZdmjRt06sOr3UtqHn151pzYdWJ WjWABZO3C/pMKLMq
qNnFG/1AfDzspz3T17YNO0Dd7scva0oQ5AcIIAm09pxO0i21XnvKxWaXdbPF d5ZmAwJwIHQKYWXc
caAFJuFREkZgV2dleXjXUt/9ldZhBniYgAQmVJCcfr1hNtQCxhlQAQN3XVBA iguSeCKHPJboSoFI
gVgUkB7aqNP/ZrhUFeRhg/D1lnmoLIDjIU7emKNdUZJopSFpnSgik5ckIEAL JQgQ4AA6bkmkjTgq
kN2PSPGo5IgPVtcmmztqKWeeBBnZlYZuaViafXYBd+V4p12maHmEHnofAzwG GOMlQgWw6GFhgWfb
ZaE9hyh9i6pCJKlRilqXAsaROYsCsKV32pWwOlhohn8NKSIhtWZFAKeB9apV kIWESeh3jXbiV1UB
JrCoX29yuFaoyxXAqmquOruTAKcmJOitkP507SGwXjkABjJwOEi54Aoy7iDO VgrjpZII5UEFPwG7
JLrqpvVuIeyaKi2J7moKwL8Ht0qwLUFOhwEIGdjVMMFTHvsK/7FFjWkgh15N /Ouu4Q761bnpAmqJ
kQowoO143A78q8sYrnuhuwoDunKJ3SL0bcwiF4XvTQS7UEKp1RHsqc9fxavi vPRC4tVUh/0piNCl
Hi3hz1gufAqPQmXX5a9Y61lA1ybDwud3c2YgAgbYtrmA1xXn2opQpZ799stI /Wm3VnSDeazVUw/t
CcoMnM0n1wgMCzOyZYW9JdlY7qljzgcJmul7l9dWWmqZEwXrT52nOurmDShd gKVN5xWsaTYquC5v
143+HOcIvMeKchscFXqDARinnAfq3gJV7kx9vlNPxGfuk/Jyr3K5fAEQ3/qo 3yHPce2+Mh+7bAfD
rom/cbpOX//0R3UrGnOzq/Z78AC7TrlKCKfeS/zyywIlKPTXr8yd+vfCf/+z uJ8n/gdAZfCEaQWs
xQETGED2cWKBDIygBCdIwQpa8IIYzKAGN8hBV2zGVYsA4dc0ozVXJeaDWuug CjWBE9nkbxci7B/q
RhiJGe5FazbE0yESk8Np1a55MemVuWjDve71TjVCJARwPNcT42QKiJ9YYqFg BxXuVZFL58MiEblU
K6+VQooNkk3mhjiqXs2nVsZJ4ijGOMWf+CVlAvxFDhmIsaKVDRF1BJpV8mhC i2WMS19LEQf8KBMU
eegAIUAKfvBzpDrtSgEjIMFPGNmhQUKxE5CUZCX9SEnbpOb/Tlla0lLW8kJM RpJAP6vKlBLpSe/8
sZVlQRIgQWGYCFiSZSnbmf9AJsGUic5XvOPOhazmS9vgRjdRKY0Xi8m77FDn N7BjpjKZQqWVsCZh
rjzYsHh5zXEJMjB55BkpvkkUvdxMENoa1xLV6ZNihnOAtgyW75ZHSG2eRVt1 7ObMaOlHssDKAiXY
5y+YKcEDRAxpeDLkjkQEJYNyaUUtehEoKXbQq4mySLiikSsdilAp1VMmPCGa bXB0rg60xz3PckBY
SnpScY4CPMYiSusuNFP14YhGGkjOTXXjAKkloIihgGlgtIVTlWIPqCMlRMMw YFIKVU+kgjkqIGs5
y19wlILv/xpXVST1oVnJzDumC5BWCZbVmqFqikQrK7Yo9tGX9E2j63ImBSaD uJ02wJcrnWuHuFTN
S+CVUHqRWlwJ4KwvgaewN31N9Hj5ib9yhwGGhdGKrCJYdA6RrodEgF1PMdl2 jQc3TvVFKfuHsprF
71wQA6SRwtpTswqJZmulrMHs5bjSxtazNVkL/zp7F7axTLcVYAH2YPMAFPj2 tX2VUX2O6NJXhsha
0PEKrCbzlhj6ZrhN7EF0j3U223hxS9U57rJIRMBRdDc0THXAubLJC10WcL1R 0hHZymvQtXkHvpaV
F58gh9/HJe4sqhwKV/q73//iliaGaxNvY8anBE81MCttU/9z1whYPyLsWkH6 U4a9eE1ThGXDZ4Hr
gsezqAgXwMGngCvPHLqm4/aivxIE3PiAhxTSFewpkqXU0mbMIRmvjwChC8t0 GafEntB4evOpSYKW
JKpkRmh83iOLdZDsPVF8uAL14RaWmTu9C2Vxe3a53CU7IeUtHqeJ2GrykiQc O94smRSXq9GWR+Mp
0YyZFjJmoHUdsWdD9JkRf16hoLsR6EEb+tCITrSiF83oRjv60ZCOtKQnTelK W/rSoSg0pjfdihba
ZbS/0HSM5shpUHy5KWZGNfUUY+Y3UsqBxSB1Ad9Z6k5M9I7DuHUzdM2MW7va vcKgNQDdOQH2UGgB
J6CNXJP/jB5cX5qddwYGtJsxbWZA+58BZW8xiG3syyBb2TV+cvWA2ZKrwgm8 cF2W5D4E1VrDa6c5
bQZReSpveCPQGPOO916VYW4t2c046l6Q29oNP5peTyeCuhm0GOtuJUI2sfWO bMQhzgzEEnkBoL23
tA2OlE4l7VncYjhLjKSv11p2W8J295CTO7/tRnugLqd2zEuqXhcTg+QHN3lS WZbyk/Q3aukZ2br7
1vBDgHjXIqrs/pL+3WSAmMU11zYwfs4hqQnKwUR/CeCmZ8W/1Ip7z3P2pU/N 6lUzg+xnb7WAqiyM
rW+56+2jXthZspk4Fv3u9Kg7rBNod7z73R59n/Xe/074/3gEvvCIT7ziF8/4 xjv+8ZBHyeEjP3YK
uFCgxBB11sRuickvJG6K8Hyl0b4M0ivD9Mn4sqtF7wtZTxgRrt/hsR7DeoSA PhG1jzSvl7H7/aUy
hcjwtQBy+fJdCJtKPS/W7Nua+3vcJje7aVm3oYyoBI1KPRMYTmgxXe1ldF8Z 30/Gte2TbfAvyjrW
t6Kt3HWl5yNT+giqz33k/yHbCaelAIGoiwJ0bqndvhBZQlJshmn5pnHEUID1 9h30VnH25lzIYG6y
5FJfUiwVpX8S5SdzsnxyE4DgFRCsdSr/Z0S+UnKcZnF5dgwmaIDDkIITd3EZ hwzvwlXiFE7v8oEw
E4LCgv83r7cPNlhjPqKBz5VQOcdpK9dWw1CExddy1GWEwoCEvdUBUXcMtqV8 MsVwq6Vjp+MAIAiE
r+QkQ5h/WMh/iyNjVrM3Oqh0l3Z0vcZ0nPcLash7bAh1MCYMP+c4jDIoRNNf PahDRLYT+mGGQNeG
87CHfHFqqmc9YCM+pYZ6yMCIx+CIxqB6a5eEtiBjNhZGYYY9suJw8mI+qXaI 5JOIZkd5pNhomudn
wFeKqriKrNiKrviKsBiLsjiLtFiLtniLr3g5MHKKuChpnoZNqVdCqRhCbIV/ vLgQ9HOMfgeJxcCM
mZdqZScbqzd4wtBDw6gIM5SM13gR50RDrNh7Tvd7guj/P+K4a+L4a5SIC3y0 jUYHMt1oRx5hfctG
bqwYfjA4T+moC/Z4DOMHUJhHDNKEHeFWG4xETO1XH/PYdBtxM+BYigjIgAqo b8vwkBPZgPuWDP12
UQr1JP1SUSfXUexYETczVuOIeCzIgBKHkhRXkSmJcVimgvNzISQpg54ykvtk k7f1ETjJh/UYc9bm
k94HlOA3c+k1h23nOaYlUKjlkd+yk8qYEDdTYApJim+4dJ82lcZQlU4XhxHT YlIXai4mlWBjImpz
XHMYlfJlYDpZKj/2is44DG9Jh9CYdtc3iVI4L215icZzh4VwTm3Zi4B5aE/J k4FZmIZ5mIiZmIq5
mIzZ/5iO+ZiQGZmSCY/e+AjWhUIAloonJIwlOZkP8YugdguDORPWWJKxR5no NC991DylOW5INRNq
RHZohESwwZbRhGZnlo+RwEZmRE+12UaiA1Rg9ESmgHZgdEVFphNs5JqANJuj 0JvK+UO49GqdCQun
WT/rOI7JtxjZKXty053w8o8voVCIpEi+MzMK5S6nhE7oGU+66TT1hDhfQU5u wUqMlEkE4p6FYZ8y
uZ5K1J+axEPn+ZWiYCf6WSLEl2siV0ABaSvoN0z6UUzuF33NRFnnJ5C8s4Tc EU0Xun4fWRP6lE0a
xk3IAYz0GU4sRwk8hCN6EVjZQZ8HRgpSA6PvljG3tP+iF5kKN+NP5CeeuyCh EDpuvPFt9CgTGSmE
jrRQEtORD8Ui+6eF5bgaFaVrljMjM3OkwMVcYhFShqAtLOVUXMooK8VULZWi qqOI+3Y5RWROVyJU
5cSEkNGmRpUvWAahYaGmXFJTT4h/o4AxVDUM5sZQ7LMW6faeH6FWeEKTXgVb +bU0JMmowLgWj4JW
ACOTruUuWOkSbzUzUoMTmDU2mqWAd8WigeGpF2mmlrBg78hbciE1jtUzp+Cq pOp1WvGqSvRdeqNX
ybcfpfIWLrl9vPAvNUkrsYJRhDGFVXFaD8OURMFaj2pyz9o9pHovX4GsWrOr KQFck+Q1+DVedRJc
2NX/O8blHSCCqpXQXd2lGRL2Fp2lPMxlrpLQruHanoO0XDOTrnvVrYbKZwOI XlBolLpwdcsqMRpj
rEBBYGk5LHZYX2bpYqwllr3lShD7NU+TE+ElsQl7FqGpEii2YCaGYuBiYjH6 UsMEVSqWFiPmWfAK
CSnbXP8iFyoGWyJLChMIq3JoczBkcwzbNh8SdFuKl0YmLelzY37IiTvWlj4W tEA2XNGpE0OWtAFw
ZFvmoy/xZofiZPPxZrA6ZXPGdmSGPV7GZnGmGlQmAFf7pqiUZealZj3TZdl0 p2BLtlN7X+ImCula
tnVGG/taJUyzl+NGPDo3E4MpaoMbkp7pi4Z7uIq7/7iM27iO+7iQG7mSO7mU W7mWe7mNC5pUG2qJ
S4zVibn8AEZG5ETSKYJnhGbQCZ0Fo6Wc4Jzo5LUreJvvWrqqO7p3tVzRCTtx CZ9DOnzUqQzX6QjB
C7oCgZ/s6Uo0GoSdFITKu7mVsLzGC4P+SUnJ+0rL+0cwWp6wtAkwio5WmQnY ChKu4S+pgX3Tx3gn
ynBsmqN9STT4tKCYkEfVq6C3hKKchCO0tqMWlqkyIi49SqDBAKTkGh628x3J Ro/MRKSK44Mvc74X
ISjgYRbnxIH4inhuuqdOJRdL1VQwUkcbzKeY8KXeNqfIcMEiDKtBeMLMO2Hv mAl/ipFTKqiZWSQA
B/86TFnDb4KBnzsQk/opCrACajIZOUiCifeqpkoscrEyR+yO7ntZ7BvCuuoh trptszobn3pgShzF
gHROrcq//UsIvwqTwTozw7q6wLQzwjqfLvM+FcEuKdMCIgADC9cjOriykeau xSVeoMNdEqavYqOu
WKTHnNCtwmWvAKwLeDyuLINb6CrIHYhbLfs9kVKUOHuUmjGw+0aouQLBaszA bFwRW7UDLwACOlAD
J+Y2C2xPjge3a8ZXf1NipSphNUtiPVPBmBLLD7a3scDKHeirsNzKtBwy6OTF lkAWN3vIOfu2Zcmz
aGOwUWJzgoI4qTya/RA6NnIa0CM9b1dVildmtVH/to8cTH8cX7PEIINct3Ys C94cFeCMrwxyt11r
tmzLvfGct7D7C3nmt8PTY39Bhn+BO+WzOCrRfMS7ioW7w+NJjQW90DZB0Az9 0BAd0RI90RRd0RZ9
0bJQaLqI0YShucj8YpwpCYQb0hNRaBuLd6LrnMRpurwxm6q70pjoCbtbjbJL ui2Nu6ubGi9dujHd
Carnuw6NC61ZQ2LcparZuQVRaC1cxNNLr34UJNe7V9nLnx/9CA0pfk2NvAeq VCIS1QZ6S6tB1Zwg
fAm6lVWlaeG7wqjpENM0ocFRbPFXrBlKeOnLzeubv79sCGjoV/joDHXtN7ny vtz8oS6K0JWqPu30
/7/m90vzKEwDvC7tB6HGc82QzdiEdUzRNyFFXQ+3ZoH8528Sdk7A1nAmTKYZ bDEfHFp+er9xGpGb
jc8krMLNldodDDLrywkPmdaIPKXiuJEy7BYxvKR5oxVWg6VL4dlQKoCDvQ8k uYdk4ZcGQ3hGrMVY
7MQYw8UWs9dl8nB9uNh5dcXNlcXgvXMHpt2pyt1HE8b36B0zqSpdRd7Cuqhn BanNHYZa+IX/UN+d
OITvGDB3l8iOXF197Mj4yq7ELAlOuAwATq57LHSBzODjDMkHHglOSHMACwzW SgDKmlrbcskcjk4r
UDVIGVvODaf1IJZ7KFgtTM2Kxsvn9cq1LMtEg/+yEx4JWqngEIbLuFWzMzvL 4hTJ8cuVWXjhvoCw
oKqwZGlfF1sey0wzIFCiEUvOZJPiNU4PP/aB21yjU5Rkf7fOaWs77vxk8Jxl Z+vTc9kMXn41ahvm
8zHm71Hm51yXDaLLrQC1NMY7MklFfdvS6BMeQBu1R4HlaNoQQc3RjHfQIo3U jUQRhW7oE93o/wDp
jg7Rkj7pln7pmJ7pmr7ph47UG83pLeHRwTjDiV6Sl6no/GDSzut3KY2bK127 Lo3TMD3TfHbmFVfT
qvHqOG27O627tg7F1wfUCg0MQ82yrw0vMMni8aDUBFd40Uu9W928UvfVGqK9 UV0JVy29mrS9m5T/
K1D9j9QOOmJNzxflvWYNgIqu20+8eQrR1pj91tMnjwMJrA3311TYpfi7oPqb K+ZNCft4DPYuzA63
7oS9v4bNK/iIbas+Px0KTA/62Ox3vIwy2S5S2eNxwAl52dAH7yAMeOKI3OfW XaJN54xW2hyMwl1o
2rWdy/je2kXlDCZfpqg9JirP1Szfvi6/gOqOC8atgwYq3MCdp7/9J8V9w6oB LR/vpBeo3MxdMyU+
SbbZ7KU23eCdxNbNxAKPqQfvcCnpfVW8xK78z1e/xb2a3VXeCCep3vxoqbGl qPBNxvLdw8C4yF+F
J0/f9CRu3yTY39H93/OqyMjFxw9O9wV+LEBu/wkJzm9/H+CCv+SvVfhJc/aN UOGUXNXaMeJ4suHM
6uEeGRkiDsZfod9LQ8T4gOJ6X3Ves+KoPmkuvq4wDi7d5eM0vvWFcOOK37S9 /PoMJuP3Psy0b/P2
dMyRGJYZS19NHuVdcfys8uSXAWNXl7FU/vvgcOV6n+UFX8CEl+btPIDvzGZl C+ebQOvAoP3xHM7d
D0jfP8/hr3Zzfpd9qbR4zt56rtd8viB65c/vD+iEVf2DXhCVDggAgoOEhYaH iImKi4yNjo+QkZKT
lJWWl5iZmpucnZ6foKGOAxAEmaSmkaiZBhOporCxoq2vsra3uLm6u7y9vr/A wcLDjbTEx7HGyP/L
zM3Oz9DR0tPUmsrV2Nna29zd3t/cKeDj5OXm5+jp6uuy4uzv8PHy8/T19p3u 9/r7/P3+/wA5DaBg
oQAABQ8aMMonbFXAhxAjbjuAIIBFBoIWWCxIKEEAAQAoWgyAEYDGABwBDERp MGRFkIMUWEzISebI
jyopsDx4EyfPAAlFXhS0MqUgjzBlIY05U6FImDZHQm0a1SLIp4OKtuSEtSPO BQIUMLimiGGwBA4E
UUwqsa3bt7/WIkpA8+AIElcRsO0YNIQpug0MROCgdxBgWIILHPAL4PCgxI3r umRroAJIhwru7g2V
Ge9RyYIJb4bsuFDi0IVDMi7NanBqQZ1BghX/C9aR2V+QJ8OVtzKAA7mwE57E 2eqDxbS7k38CbihB
SdR5Nx8tGVNCKuC5RTkvpMB6R4zZdcekuRS6LPPh1b42DD7C1kLb1W/uXksT c/MyLZSQvOi2L7FH
3VRQAhtU8IAGHxV3nHLb1DbIAg7QEh9RpVSG0QAXvMfghpUIlVJlQClk0m+F edgSiPw1Rh1wA2DQ
wYKfpDchAJC1+KJvLm1k0HYLHJgWhMyJAmRhNsIo3mPuqeSikTQmKV9z1HH1 2pBJpVfWMAdksBVz
CUhgQgUOoGWhShlyWI1H1KGlwAoCoPVTANYZE6SZdE7SZS30ATjnnYTQV90r LFKQlpWZzHiQ/3fs
ESVok+/d6dwCGEGo53qgTHrZorntWdJAgzqpIiFz+ukJcJY+WCCOCw2DkIhH OpeYmK4cWWc0MmEk
VgsiwABWjRXGOueswDKC4Xuo9STZsITkxucgLGIgooMClWkYokRJ2+KzbA0r U1oUsVDRTSlKaSwK
zmYEU5DIKoltte8FueyoJX47UkI2OnBtqsJA2+pY7sFqyq/BMoPKADu8AIIO NRSA7AJxxipqwBAn
0iOrB0k258R9kkftk7qlywmkHW1s0opESptRQpA9DDAocsmVbpAgP5luzMy+ 9i68e7WsJVr39tdQ
uYRAyN6rEToscsTCCEUcmI15d9IGroC4E//SVOcYIo0VNAVqvFpLTVNvVklt VU5jd+Ix2Dh5TDZO
QtWl1dbSsZxabyCJnbbJa8Pksd0CoB03JXzXLFtaK/1NiH+7CF2IVq72G2HW U1ftDVmSV2755ZQg
notDkFCOeTaefy766KJrHk3opJ8ea+qst1616dCg7vrstNdu++2456777rz3 7vvvwAcvPOacq1SK
JMUfUvzyxxuyMvP1DS/96ANxtCo2yU+Pi5uEZM8I94oUDz6F0cvaEXJZNd+Y T9pb0hVsTSm9qU5G
2ZRQVT7Zr9DbnUQ1/074E4D83jS2tw0wFv5T1NQSOMAABpBsRgnFAd82m7Gs 7kzoa8TK2tf/OU+R
LxKEWpz60uM9gJGwebHhYCXM8xlWBWkxfyFPuBgVGReuZoYrjNVpLGO8WiRm ZT+8YQM26AljBDGG
gdGhe4DowR1eRn1yowwPUVFBfU0jhIggogoZASAFwskUdKthRtDXRQIZCEGX sgi1urg27/SGW4VZ
Cmyo0xvvsHCLk8COB1dGnxBuJ4QPywRF0rKq68lxOuZLVJ+so0UpEZI/9Blk xYZIKUUmypDsi2LG
FIKU/OyHYtNgYxgVhCOPjCSCeGRElk40xV6Z4jRJUsYqj+IlMImpldfRkiAq 80RT6GstGFOLLrHW
yxE1MpWHaNaN4Kgj+FxoSajaZZKKFE1E/3pCIyXhkY+QZBATJcuDn/KmLLAJ pQeRRD3N5OY3dxSp
bYrCm9rUAHKw6IxZkskgwxoTso6JzE0GZ3+lABtHhDah66mIaNfDTF0Sejw0 1eyc/pxkD0vVT0gE
qlONWqMbMeWp+HCKhrA52iUo0s4GPCpS6DNU015hqECuFBYkNYlk/BTTYNKS pVH6lIpApjilWOek
I8rIqTJIq7pMaFe+ipfhKloIaDGUAAbNCgZAMEyTJKVxBVDT15rn1K2+olYu 8QAPH5QUhsZAXlpj
qirnBjR9pWtZPXNQuuIKk5tpYhW83JZ41Mauvk4renz1BF7HCtfj8bJ71sJb uvTKz1NkiP+xRHKR
vYAmDWgdVQByUqpahUXZYVEkTmNlVgZEALSeHdRxnkWAGzuboc/WAhVrGYje WKsY1QKqkptNZmpc
hjeMvYu3LaEZcF8q2DLlM0miolnQ6qJcu54MlMXFZ5nehSy1BVO5I1OnS4WE MuQycmeThW4zTFvd
DBkjuUTNbVOJakoPxKo3C2VfT0+b1bS0N1bzXV8A3EsApUWHJz9ir0X4Kzj1 JiJwYWzb/nQilbz5
1YtpbDAnTOkT/nlMwQ/2G4ZjQeEIj63DVnObYhVLPw0t51tuK3FQC0eN/NqE I1IzCv8M/EFMeG8R
N1YFFGnM4x73cBGy87GQh0zkeQS5yEj/TrKSJ3fBJTv5yVCOspSnTOUqW/nK WM5y76CHvB03gsvO
w+2P01c+S5xkqYxAXY61TOPqGSSq01jzI+R8jDNjws7nGN+YIaFnR+i5hGL+ s5cx0VhEoI57vbEV
TdYCWQE4Nafy0B8EW2KTjckxgT+xdCblNpKSdOWBJ0kJ/yr91bSKAtM/+ZqK 4ReiCa5aF6jWXwWP
zIw+KwJgiGawop2il0Y/WhaFTkSwpXHCMh8YnMUAJ6ClU2ycXSJ0NcLb9Rh9 A2cBk4yQhkdpDjuw
4xk0hUZ0zyq+rZlYBOmO6jRMX5A4bhmKN0ZK3BFocClGju2S3rkIt7xZVUU0 L4OeYR7N/zSlvehe
V5uSjsY2sMUciWHTio4M3uiHmavwektqaRVvIxgZDEeQHFKUETdFVdJrccIx OCnMGQ5MFnACnSDq
JA1TAZO6qLZp9/oBHRCgXsAHoDfSaALGQRXLXb7xshHbg5gMy3Ni6Zq8PLIB XYQMujVZiF8ZqqXW
ibp7AO7ISYYn6eEJUtJ1IclVfR0ln8wGyMdGSvsKaCs0Jzivw4JznbdJ4T5v e0Za/kUHC/s1YcyI
Gn0p4UR6w57cdiWjpL46xMfSaAToKeLp/Uu92HTyvUzZDBlPgPK25FerwFht lDsmUdlzfQstON1R
AIO1+EsBP5Lihcok+r4ZF2/PoKZ92/8pTz8lYKAkSgo5D/UX4Du84d8yypxy gyJQbsf3BdG9LYYv
/XhOdplW44j1eUF9aKKP68uwp+f1WaY5nd4jqZ87Qljv+qJBNfbJqsDsDVJ7 z/9db7enf7bHfHxn
fNurAkV/uzce/DaAARIl/wdQfwFROZJTCdhDmvduBIURl2VvUeE0lNFE74VC KYJ+UKd6q+ICoiEW
CsADd7c+1JFZssEWFSgNH/UqDMBTbhcAG+AepVJT5GERNVgAFGULy6IphvAw omJKO/iCyNYJONgA
RphVMYhSSxgyBABU+bVwJfWEJjFU1WBQl6WC5gNnqPeB6pcQIthrDFCCJ+hQ u5RUK/j/HWR1f9Zk
VelxgdfBcA1SVl7lhS1CVVvhVlNVVQmwAlHSVQrIFBhBEWLFFoL4Y6FmYlKl hzplVRzDK76UgcSy
galgRfdGd2EIdTRAhi2AAzPAc+fEhfrSgtFAV43WPRBwVuNiWKFlPKwILu8W XfZ2T4agLEczMG3l
b5YwWH2zi41GV4jFgzjSf5Xgi8JYL6YVDZZFHUj1L5oVNMxmGTaniQrQiUr3 iaFIRqOohpBoSZhY
YI+4K000Tc1jjMtAXq1lW4cFKqNVWpQVEu8oIggBAgiAHOpYWxsDW3ohW0RB W661jFk0j7b4MnND
exi4NVFiDKsgkOxSXaWwKlliA2Ex/wIv0AA58AHZonh+4lb5Nw3AlTLUIkkF Zn/qkUHoGAnBBDPZ
ZkhHI0nDJQqeF5Le1V8l8x4TI5LGFgozeZOrxDPxmHu0dU/n9XIZ5JD3BJFQ FRQZQJGZcZEZuZEE
UJSTOIy2yBNswSL5F1NZgZBzyIvTkF/3VXRXg5UPkl4yARUc8VFiOWCu4F+6 oVdtuV/4NRIiBT9l
1UxK8xU6iF858y0NA0bHM19VUVfNdD1p+VFIAZcxFlx78WKM6AyBZ0Df8peG OTZCYZnmhmIKgWAm
4zULdhM6Z3SBBwsg5ncWdnIhJiIzlgunGUZCw2JhSVSQiTXpNGlBxRQSZkrW QxOJuf8oiykvdQM5
KWFFtRkg54JWIHGcQuE0fWmTogkOdPZlg4Zj1aljO0l8YyQw11lETcZm4Bk+ 3flz2Tmd1vCd4RkJ
ftKO/EBr6fmeiuCeuCCf8Fl18vI4PYFK70Cf9dmf5HkM/OmfAjqgBFqgBnqg CJqgCrqgDIqdqpid
yjOeEfpag/Y8UGSej4BnOVRmGKqhgIOeDcogbiZR1YChn9ChRvehEOoPgrai 8EFy30NUyzYXMiqh
koCOhwajbmgJAep/nSZ4C/Sjb0IdkjZqQtqamyBp7/M+i6hA1tMTU3E1SHoK q0aZP+pAUMpqNNGk
uFkTWYqcViUWPXoWOiol0mFrt0b/h8UAog/RbB0UmfGpbBWKW25qps8GouAH N3fqorETb3yRRK+0
dX66bbikb4nHp34GGk0nTaLRHCiDb9K0b48BqYIkRDBUQ0xELEnCGuo2REIE CrmRQv0GOkfobKZR
qju6oXCxdn0XRo7RU2VEcWmJNRlXR2TZcetTVhA3eAREcq9qckaXchI2dH1n EoPXCjJXTbH6LMDK
PsJaNsT6csc6AclaptFQdvyxHdhKSU/3dTmoc083dptgJS9USc/3rWzorZy0 aUm6MZEUaDn1R6WK
dYjKZ0vXqJ6EQ8+wrGM0q5XhqwVyIAkCdAtCYZHDryummvamcntHdEAac0wS EJgH/4HxxnnCdCKP
J3LWIXnDdKjfKB+X17GFilybl7EmCXqDuaWysZDyp53yiLEGQQsnW0mhp7LZ Nam2cpctxoDNZ06B
CFHVx3vIMXzbtwnSV4v3kTXkIbTqFLQyJU+gcHWFmHyaWrVKgn222YH7hwm5 QSXpVg2OF7OQN4W0
9CVh8jg5C40507Em+5GJVLMKMXosm7YR8YADw2A7MYEEeJaPiIb/9Ler4Lci 4YDpB4EkK4ED2ILM
IYcfC1JpKJipEFV6q7ivwbj6Eh4MaaPNkISLZJMllYRLKIUkUlKiKxAc9Xnr 8Sv0UbrWFLpNmJv9
464i8y5SqygY1bl/ErUl0YMLgP+F1CC5BoiCiYBV/vJjoSIZk+uMyZmXvHq5 Ggi5EZGIqICHfbiH
2VK9hgGI0ri3nANWhviK0juYt2kIeahLlAsTkti4mGuJ5tI92Hu+kaqIlJgs 7LsNvrhOyOiKv4gt
wai/qWi0u4i0lZQY/ztXwFiMamonlpaLifUeBrwu6eZcd1V+aBUiyhiUz8CH jngU2jsX/FJfmau2
TXW9jgi/NBR68/sY9RsQ+eha7ClMpMWa8ZglMRwc9oiPAGlbDxpbFDBbrJJa 1oGUVUeQM4t/9JeQ
NbOQ7LuMNFwuRdxXDFOVSUy/0Gu/bvtPnteTl2FeNTl+NWmnBpmVlWR2X3yz HcP/xW+ms5RwMxJ8
XTklXDfpTxKsCdilGz8ZXnE2wwRZMTfswUQTwtspVRTTxPvjtlp5xFKsHkpc xQExlwQGX/QoX2iZ
P2u5KI78lsIZlzhyyYTHq4gwq6zGEXspG8/ZuFYTmIo4ycwryspprDTol/Y5 rYysDSAGmgFSNq+p
sPyTy5FjtKrJN8AMOSk2NWozma92V3j7ERrGmQ92lRBmm1KazGA5CrinG7Gp E9MMDFMIygpQyb76
wcXrEBSkyrrJytH5NLC8NbK8Z/9goongzux8jOOJXtxZryHKoPAsEJp7z4mw nq/IzwAd0KmjNPj5
dgJ90ONgN72M0Azd0A790BAd/9ESPdEUXdHkcDEpygsoyq4bnc1k9s49TJ0u Sjke6o8WHREj6oWn
uM+2YJ4knaImbSa/EmypOTXvowhomqqGYa0BRwk5FtM4zdMqHD3oEtLnwKU1 XZx6KS9Te6RV+tQL
jTyrRmroxLyIktSoK1+3KWmVgNTHLEdc6tUHa2qHlKSe3BWzxqbPkNMwhVts bRroWdQeDRAzncDx
l3kj26hAhqpZRCl5Ko5dZs+3yNdwTdR2XQ6AcamJ/amdWq5ZKUSH6rGUoNj0 4m3dpdft5qlIRNmB
sajw4W4T9qjFZBee8ad/6rGcmkL6LHKXnRqjig1/jYQDTNhU3NN1wrByIUfY Qf+wqOJzSSeuYrdp
CHvNwUopw92sKEeHDKtxZiSwpOwTehcTz8Hbg2KJyGokz4qInuwN9Iq7ieLY n5x13yqul5AnS4e6
UHHe3h1SX1lOsd0I57qudePZloRIYAdOU4cJWofe8KMf+up/0x10QythPncI zY1Gemew9RPgCxLC
1x1N2R002w0R/OhoFpMapYfEiNQj8lS0wZ2VbCu2nWfIqRvi5PnEwlIhuNQl Zss92NGypiey8+fg
LRvGepoRWwvbSut88focO5593US1zvQpHB4mTIsJz+cdv8ff2rnkbPjkR9Kz R7tCP759Xpu1ItKz
1ne0V96uxcfk8YsNk0e3Hx3/jiHT4mirneYn40Rp3TUuLeCN424hh4Nrn+jL vn4ruqyrRcD7KSb8
t9u5HX9+CHL4VMSLHLtdxQalgg7ujbKiR3C6DUIou/URSGysUX/xuhDCupYw hDroJFzy6XBH6YD9
J1ZY3j+l6Q7Qg+zduaK7hKyuCUQI6uvRu1kj1MSw6OzLuH5r4ODsfsZr3HXB 6Nbt6HH+3kZmjjZ5
iDcOyPBjKwgcFtFei4egwearvLVo7ezUhoYXv9PrVYceifULLcQOuVz46BhO 27DtJJcePeFRzNKy
LI32v5XgXA6BsqnQ7jeOvwHMtTaIwN5iLKyCuf/ecXEV8LJ4oucIeJIlxMxA /+7WreyE6MeOA8gX
UyVq2OgijO7oq+73sDCM1I9GLR7OTj46qZO1CMrq4o41jOIrL1otT+J/A/Ij ro9R+OviDr2mRZU/
xI6QJ8DJmePa4JK1IMFwZlMyxUnUcvJlvMYveY+l7hLIoe/7ToAxWd7dlca3 9ZiQlPXEd/Up2dfo
Axx37PDIsPOWSPMP6ut/PO5HSVk8v0Q+r7HtLY5cKRHobJPL6RujHMJw2aVv EzhmGch9wj61Ocqw
yxSrHOTRWe2lPJaH3vfsO1+NectQM5XEyfhSgfjNKdjDYMt+4ze2jGEY5jeA f8xSLZqZeW+qX5le
ZBWiDzlhI8ysqbCAQ/tO2v8uhWHLtnz6KRr26gzdsv8RxD3XvUD5k/+cfw8l bV/F4xx/6USEUZP5
VmMVnA+Ynn87+Uy+LD0MxTOmJ51k28+TUAT+4Y8ban3+6p9m6b/+0G/Q89n+ 7n+gCq2fqjr/+J//
+r///N///g8IAIKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6Choo4D EASEpaeRqYuso6+w
sbKztLW2t7i5gwMUFgUACg8NupqugsaPyIfKxM3OigkOhcyM0YzUz9na28kU Ab7cmLzfv+GW4+Dm
lei/CwIKDAYTquqO1qimkveK2PX+ogYilNuVD1LAgYn6/VvI8JWBCgIAKGz/ OOhhxIkUAViUWDBj
oo2p3MFz5/HQwWkdHZ1slbKkS0rwdnkLIOHUuAAREwgTtECaoJjHZkaUOLNm gg0VHmjA+bKp00XB
hiVg+nRQVABTh1YFtjPr1p9dcSr4VmLnU6BEA9C0KRSr2Z5WGchUO/SmUaRK qX7deiBDOZCm5J06
eFKwoL7lBlz4pbgAYAIJJJio4GDf3ssZE8hdoNTnVs0AOGvwXBW0aNJPTXcW tNIpYtYQORIwTFig
xnmH/R5bLHHx48iTK6PG7PIq12GpbpILLQ002GFY5fJ8tzOV5oOWiWuvp3nB 5uFNu3/fK545eQbe
zYdGGgA8ReNXk89cDtf5/3FB9kVWN3VdYPbtGZH0nGzG7YIBCLpNN0h+1CHH Xzz+uQfghM2MJc0B
CGhVlYUAYKjhWe11mOFeHHooEQYdODAABtC5JOB9qRR4zIEJhqYVg/E9iJ2E FKqzYouNYVjTRoT0
JQKLMwLJW2NBImAUhAX81+OUuJykQE17WYnlV1rSU1WXiEXz40tj7laAkLPF VmQGR0JXZm+MLdbk
kztS2RBchEwVgAe43WTWWFrhaZVa6ejJJ2RQSmnnorKwg5mjl0G6l6NwjfNh gKgZ2udMf+ol6E+E
lqMponUyWg9GjaBq6qqsturqqyh5uU5LsNZq66245qrrrrz26uuvwAYr7P+w xBZr7LHIJqvsssw2
6+yz0EYr7bTUVmvttdiK+OECdBGjamjdxvoIt3qtQqtMly5zriSpGJbtu1vx Ao6MC7WLGyffwkuJ
iYXw281yaaUjaSKKJuLvgjwecjAk/fCSriEFmzvbvcSRm47FA40VgFlY6aWx MBiqFYB0Gm85cDHe
gBOyWtJhDOpaIoosHTBqgYyAzINu3KImGo8c1HIr+xxwOSWr4vLLHIPSc7gf NyBSPBQ3ZI27m0Ss
byYLa2tQbO1ybcoBIZyi086GtObIwmY3kjUp6xpkWyb2ykrc2Hl2lTQwI5Aw FN2HjUjQKVGBLfbd
lwjuVgNrH85K4H4vyPH/wnx3QptAho998GOLJ0135LKcFPnTLzZUWNSYpH31 JeQyZaJXWt/2gVo+
3STNVVnRXu6VqgBaCFB8V9pW3x/y/pY0N2mVOE8i11UUZHgtFRG5Q8nzeohx sTbB9D4tcII3WBb/
81ryqAD79zk1z5T3/tiHn1xpB8TBiGYfDJTZuCtdU+KgzU954xq9DTwhptME hmaXNNzJLyzvkI7Z
QBPAVzDQfzSzQFnItpD5TUB81PPeUZLivLTcToF9yofsyMeT7cFshNhKhYc4 0yJ+PUQu9QudakYz
Q9LYR3eDeE3/fiGYxsDpfzlM0OgI4EMfto4laboIfyRDmXu4sAIw3JIO/1/4 QxbaqIi+8VqaokjE
JS0GOE10wOQQoo2H6Aw2Z1xRB8bHHBOpcXwrmxeWEpCO9YUCNHH8SwXOWD86 nulmy3ljiPJ4ojVS
rxPcmtmC5ELIGvYRHGasDorYCIuTCNIzDazHFKEIjJpgMUpMFM4Yc/OXEJ4i dKO0IklCV62e3e9m
imydYVgxlZmVpye39Ez9ElGg+siFQUAcEE+a88uZCeh4NFNLTXJEqggBcZYF MY5hTCRDYzZINtBE
1CDc0Z8oqWg+dTTHLn/iSQpI4yAxcaM5d5inOaplA/4bZyfkiZUtkVNs74Rg ZIi4zgWW85wQxASG
NsMxeu4zlx0LADwRgv87XgCUjHeUjkPZuZ49Jmwb0jQlg7opJnASzSzZ7NjM lAMOVtbyWpb8GgI8
oKZnmnJQMBxkhkrkt30uInQrQtAvgHlEG6GCRju1ZjDLZpsY7aeZ3nSpTQry ommOqJrbvGbcZLPR
RDmAXvUw20HKtAAWAFJkD0ABkny6C978DT/27IRNp2FW1kAQGUwaK07lJNeH UYIVRForKhZDUw0h
Y6t1hYURuXoRFKlorAtpqkatydGrEk6xS6XHWGB4N1aCKpbQ8uECXikAh+XQ byH9W5e6VE9Z4fBE
OzMSkj4ZzDd1iE2r9WI5jqdZTy4GTY1VqmxQWxHcxNCvsp3TxCL7ycb/EqmC BbTZRdpqIje2NTSP
Q4BP9KrWtG4zuS2UbiFY6FyEcHdERiyGbEt7CBaStm+oYdxyIfqJ9PwvSH4R E2L98aZsFteqx01S
RfaX1q5t62H5Kha5NjAPE1koaDjJZtCUBzBHKYcqp/0UqLSiMZV9lSkSphmF QxWz5CFiwLgZVWMR
LICQfsqMAGNlhUWllkOFdMXRqZOfKOgMFO/Exm76HRC9t7KdrIzBHt7EgwXQ 42HguMNDKTIJlexB
u1ZCT+ebD06Y7Kgfo/GMTRbsc73nu3L548QvhXFuZ6yeBb2zwF8F8k5Ct+DT bSPAiIBzM/5KOjfb
+c5sk1sx2obnPneu/85+DrSgB03o0u1RZAD7s54LzehGO/rRkI60pCdN6Upb +tKYzrSmN83pTkeK
z9sNFz68BGe4nitxck4VqL8FPU+7Whvy+gVWYb1qUOd5XKI+ndUMkbXswNnX p+ZfniQEqYOdjBUn
23W/hL1svZysSDfTCqQg1TPMniplvwgayZSZO27/TGDY/jZ7PVHlr24bZsk0 WbiHJm7BrnsvIZP2
uimVQKqZY9epLoSyoe3keM8lnM2Wd4PXXW0KZRIRaAtogNNGjbU18DFHhLho tbjfcRuM2ft9X/Qo
TlSNw0aJScQmbg6ujcopd9THyVwDHmPylXM8FC03dj6ionKWh+1wEv8PRc6/ FAGPa0SLjwGdk2sc
UHUt2m0WRzjG3erznWcctEAH+siLfhnhQafLelkYWuzClm71TpcjXZ4HLzQi 1gFDkeRaJgKhTA7b
XWR5bq/e92KnY2S2Lu5KH4rb3T7A+yxjJue8HhtTNxTtcc9o3saEAfmnvwI0 Hu/3hPwrFq+hxytQ
IJLHneQ/sfmq8GvvCByLBAmHUbR7m+uhMWH32rLBvFA47GxEX08V5rfOf1bv oUdg32c9dtcNPsiG
R3fajw6KKdqmh+Pt6SZBPsYhkvLju2Vzhqz4fJ4osoZHrOFvCDqa6pPVTD+c Pa9ryn0J8auG2AeX
taMKQE6GN/prft7/+p/MSEDKUWy+eGSUyp+nYkK3+7GAR/Yna3OUfwW4f/9n Q/53GqOQfvBGfgmY
fiTXDDoUGooEcarUWbIFRsLhfXMVJ7O1dLdnRwyYdyTYGemXSIqASu63ZfmQ gRaIC71ETNHBfj0F
H0dFUu1Ag8LETCL1WUJjFSClT+gxHv6SS8yEUH73g3akIOK3bHtThGU2flGY HrgkhT0xUNBFY0x4
G6dgYCKDJahEdZVgUO6kULahJwulhJ0kNlh4UTxjXTalhmmYT/tnhbo0R2/Y gHt4Gef3hkq4AOwB
hzI4hAx1VN9Xg9ORW0t4Uk1IVnb3h3h4cVX4HbmkhdQHMUHoVBHh/0qnpCET GAo4BVSKCIn88yLM
RC85VSOoiIiXJSIspSFNBUF9dUR9lYoyVXiXMlmleEwiCES1aII0Q3bvkIt4 1VKHwIucmFKfCEBk
OAnUBX5n9TfBuFbB2IDWFX7HkBIxkoto1W3EOArX+BWfl4u1qEaHxYXNMIuH 6CDNuEhRxYiWxYs8
FYm1543CeIvGmA/5ZQjKiBsewoyJGIqf4FqqhRzJ5y9vIlz9eJD6ZSZoMmoe 4lm81TcXaBu7JChd
wpAY2T3z9Tes9YT85lYEeHQu1JGzgZIhmRCB4Vu21Q5iqCFamAnRyBPRRRp9 R1p6dV6iUJNb+Fk4
qV06aU88CQpFyf8XoIWSYBJf6RgObzKTEOkk7wh+jTFmH7mNXQSCQ0V70YOS lEiSbbiRyceSw9WG
tTWVIjJ/o5BhpwVjJDaFCXUoHtQpgZIpLYZmHgaG0iBhK7N6ieZg6zYq7DaF bZZMFoZo6YJi3fJs
V7aY8xaYQTZ+HoZiF3NmaNlh2fgvyaNkVoZk/8YYUvZ2iRYKQ8aZgJRkp/mZ HuSYo0ma77YVihll
A0cfxOMNQ5cLfAlIZyiXKsZhufUphemWF5aYh8aaAFcRxSmb4AYwUPYwbUaZ 5QBil9mXxNcJ+YZy
4mBrqlado3CdT2FvrxaepKmde8adAAKe4mks6Jme7Jlp69mesxD/m61pEsk5 n5Qgn8f5nvC5nz2C
n0nXmByWCf5ZNoDGnwZ6oAiaoAq6oAzaoA76oBAaocWyMK0WL+QJLl62W45Q oZCwMoSInbRHSclw
oRJKLLG2hAzhneQWbNuSa4JFopXgobmQNXZnCNO2bkezDq+JCPs2gvr2oVvZ CAVSo/jBI0P6i8OW
PhCGMzGjd4jGFEXTboPJmKgToFGKNMPgby+TVqxTcGZ2m5JQcNrWYUITpUuj OtFGCE0zeUzqMk+j
n+rQo52wNopCo0hqo485mwAnp5ZwpGA6p8xGpMjJfC93ODF6c5xDVP9JhYVA kD4KCepDpAcXqXdK
UeKUNxHRfD3H/2xbNXMgg6jC8BhOVzXCoHKGynR+Y6p4ozdeSFEKgKmSM3V/ JJP8o6ok6T6Nk6g6
J6t14zQJZFn/4KiAeikNZKd/Cn0qBKqIo6wVF4CKJKiWQHhawzouJHgZBHj3 UTsI1H88OjwY6mW7
dFo/IR1fl2VbaXXDZK4iiTxeh2hGgWi+ID0iihbSynbvKjLxaq2kQa+Tqa++ d0gAsakRsXtm0Wsw
dHkMpXZSIRbb+gn5g7Cm83kI2z8eR7BGJrCASkCIwz/yM7Hw+EzP6AkWy62i N0EeYUHYw65UgUIQ
Yz4l5q9sV0f82i2rQxXVmrK9l3lpNU4zyxTyGiI/KyH16q6QAf+vjuGv1qlS ApCJT8RFiYh+/BdJ
XOh80/iI4mp8PDQPIXkwWOuFW1uprkCpWkFFRlSB0yi2yCkXZVsjE6e2WeS2 i4oJWdg4KvioYKl/
3Aq1CSg5e7QT+ndJPoq3cxsoQTi47SU0hERIeAuWOzZJACsKdftzWGapDbFJ TntWwNpOwRENVFQ/
C2O2WLlC0bVxTgtVJfiIjwi62NSCjsG6SIS6/kK2z9WnYUgAIRNL1RpZXZhL bNiGyUQ9vvQy6Oa7
vMQxwVuPjGe8NIi8TuaJsNs4nChMv7slaGs9X1h7BVW7ywiQldqn9TewCEBQ 0AE5tmSHVqGHeNi7
nNBHdjhRK3H/hHaYTiOCicIgv8d6NuH7kwvCpWe4UB+7Y/0UsliTv5lIvIJo Ue8BUmFWu114CMb1
UlqXvdx2u1BovbvliNExifekpvZUIJ64vdf7MM5bihHHvff7EUWlUrE4kq1q DLyoj+HYrMtAigJJ
XivoV6TIvIQwijrVi6hpVzVcva3KL+yooUIcvd/HjCC8rgP8pGHFj2pibLNr xFsCw0xsCWaTHIEl
fqUQAxe2MSgAxV7lxOrILlAMXAjxfq7wfvxCWN15xs7IGIblWl82tqZUwzSz fg+suxQ6tilsuyuF
jLmroXk8jK1DXdRVxFMVkCZsEn/8vHYcwnDDG5sFyJ1FAcYD/1ovJVpK6ZVC yIUOeZY2PCjSNl+h
nJCNY5CwhZBaua6iTMJlZhj1s5CUTL2xpJEuaROIdZayPCS5HAvdFX4H417Q Nl1E2cklqTQ3qTVl
K2x9N4IrCa2kMJb6a5PZ5RnEDETBLAoreRxh0pT1glj2Vcukdi57rKGfQssw ackUKUubjJVD6SXU
pc6h4cuAY8/Ey1brjLqx/MuZIJ16SWIKlmZS6ihHxkueYplDNmHbNBxtyWFv yZYeA9HD+WGWyc/s
AJ3pusMXDcsZfWgXgxrSqdEaDcw1NZnJuV5AuLKhOaU7amg1k6WpSUKxSWQz 7aPNycKckNOmGdOe
KY2S62Gy1/+TKO3TXXbCugBmugvQBO3A+LXJlCLSlhnQwznQQQaYiLnQEjbS IM1DXZ0I0onR2FbS
xaKihFxjUWPW9jYR9ganJepqZo0vMGoLbB01bl0Jdx2heT0Jew1Adl2gbx3Y v9LWgH0JfU1pA8rX
hY3Fi20Sf22egq3X9XmcjELY9JDYknDYkb3ZnN3Znv3ZoB3aoj3apF3at2Bq kA2iI1rOeoZq3Eii
7SwxcDPXRqfZph0tJ8p7PkLbQvbaZWl0s53ajAJswl2k0IgaDbd0xM0wmEwJ fEqWg6mlSGTbTSHd
XlpwZ3ojVJGja+qlVPoI0s3dMZ3dY/qlfZPQibam+2Ju543/mkzqpTnaMQwW TmbHM0/6PBz2po3N
Dc89CXSK3C25aP0N3MWWpqbCcDAqrIxbtTodx+JSSQK82qKKsdcQ4FSCq9Ej q6Mkw6/Kqr16qq1K
GIUaCRgOMXZDYweRNR2eqRT+4boqCZdD4ZfDq44DHSveIcy6qkj9CAskDELn EQq+3sSqcBauqOU5
4T7HKFsndhrkreOKH8OjOw8BdnNxQthas69X5ViyNO7BoRjqlx9kPTgbfGAO ZAor30GKCssTPiIK
IPxisSP7sSXOrfGjXVFhex3KbA80bgL4IXMufns+wJfy5hxr55pzeUm+wX/u CepTgyVLev6Arswh
5ZThwC4b/7QJFaBnp+UTg0H7CkJjrnpdx9LchnfSTI5CJHWDIRBU27W9TACC snzRR6tL+zipznwY
CelHlM1bm+pw+5Pu8Enbt7frKqquSyHDHITq16hvY7iSK0mGhM1C44BCjpxp 5LikcRKE1EaNE7t9
ixzYbgnb3jrjHrlSO0zki+7dm9lvc+4LXrlCdHy5nGFotblixEme68y3vrq/ /lp69OsZKOxalH6n
vhU46I46aB43pLyliMF+54MYTMFq+idHZSW6fpIIwVMZJclQNR1J2IfHw0xI PCGELr702yLOYb+7
8087dPLqC+PM1lABPBCNXloqH6Qy/1A0KUV6/kriy8EEcP/zGyz0aoVZGTmI CdwiwYsfyq5vT83H
wnbwIifJfhe9HW8jH6/BBV8VreiOqkiKTjgjPYwfK4B2FOaKhYwhK2yDMPKC ms6V785TkKU1V68f
Xo+PIV/xjYzsqXrGx1gXvIFgkwtYV9dZZzyO/s2pAuHG2lhW70PG4kf4YX8O ZpU1TALHTwf5NiX4
un5XU2xJc3yV6sDDNZIAZU8wT79bffzJU986c09NGoIjRxWMW+8U6owmDbnK D5kbbQIWIKBdFQkn
Efk3E9ncwS9cdCyMUPlDRSTOv/yBcMKRyezKtyWVr94jbRxcyZfN53pyTCJb Rwnzu+j9ZsX91vyo
Kk7+ccv/CNSXNSzUzX76jYzqCebvzUyZ/Oagyr3PFb/vHucMCAMQBAAACw6F hQMYDYkDFwUHCBIE
BhOECpQAi42FlpiaCwKJm5ClBY+Rk5URBQCZhACSo6S1tre4ubq7vL21h7UJ AQEel5sUww+dCgG0
hoi1zLQKFq4DFIjApMLEl5LDzbIIo8zZ0IncxYQL4Jq23+Cj8JrMAdWF2p4V w/eGzoX1+qUzds2e
KwP74uEaWClhP18QI0qcmAghuHDcwgHISCvVu3EALAZQpgiZRo4lDVKsmHCY AJEkj7lUZKoQvJg2
QYp0CbNTQY0rbzba2UxoIZQ9Sc2SqTDnv5W2POpL1ghY/8GnULNGzJdIGsB7 185tY2CgVQIHnzYN
SnmP68Zh6kT24yrXlb9o/OwylHmPKFatgAPrEhRLK+GJhwEnzgULn1jFaysa E0y5suXLmDNr3sy5
s+fPoCEXDu0ocsTFISeTXs26tetXmhD+rZz2te3buHPr3s27t2/dtX8LH+4a XgC0LfNSDs6ZqEri
0KNLn069+kTnD10zt869u/fv4MOLH0++vPnz6NOrX8++vfv38OPLn0+/vv37 +PO7R43aV/9e/Jmm
FEi3BDgaL9fMhqCAUP2n34MQ7kfBPQrgNJ2DoGEokYanMXjfWbVwuNBjvoBI ioNL3WJiaQfukuBK
Kxq2Vv9B/Xyj4IPGMcCWXUdpRKNd9QSg4yvgDPnjjpex85yNjiAzl3JBuhQl UML8U+VlR4oDVJZK
9pPll07alaVl9ZB0pCgKkKUadTFqlmIwJMIYJ0WHZcmke2XxqIiHu+R5XSsh 8vkmKX6eyCdmhYom
m1qscEBghLUMekAIhCQQkwIjkCAPpRspk1aen7ayKGGjHgqYpQ2U5Sgtk1Zq IaqEAlqRrJhq2lWm
N1LUaqepRrCqPqOghmqpDQU7CLHEWgYrsIyiyYAo3CW62aCeyKqVtFmRWoGx jT7KXppNDqPJT6Ms
mw+4vDrmFULnoMvUuCYhstSVAA35LiYXzankP0rCO1P/V0Na8sEw0CxwAjL+ +mgSJRU2Qi+1vygk
MMGpDXzceRADFJuv3sJGgCSINAzyK8o0/JYAJtN7WQL2QtwYOvYeFfNGAXNM i6odV/ZyiikDRTPJ
DjfTM8okVTk0bdYCfTIzFpRg4XTomuvAuhXEmcAGFTygQTMTX5zRc6/Yq2Q4 XSNSNinonm3IwQEk
3NHCBBwtTq7jHZCBXcgaAyqgtdmNN9/GwJKP38weBm0isyyAE+Ehbcuonybj 8uYCMXskFeMI6eiR
4lUJYDkkxLJsiNbQZBzVsRVoDnrqp5gHT3Y/P0Ot6PgISQo7Q4quuAYO6E66 ZRYtnjPtwXdSrZ6F
HpKi//I5U0b73DKPznvjIzms4+69X0+677xzP+dKi3RAsffHc4c54KAQ4BY6 EphQ9VmZewy9Unef
3pDqBcR/ef2N4z9655/Ln+MIQ775fetSZhrET1QCjOdF7hmxe0vMImeywwij ZQiwHdoQ2AhSAeqB
H7lZ0p53uMilZSmHix4+iNbBQbCMchA04C2CRIkTjsOGdPNOAtwhP3ANqjGS 0F4Dgvi/F14vezBc
n2B21rGXdYWHz1OhD0EyxRxSxIkpMmIMNUYALR7Ci0g8IhgrE5aQmOVZR8QH 1i5GnQc20F4XzAXL
8gQ/gqyFWg+kYSWMMQscAiQmfkxhBNGUwC6iMYamM/9PCis4CBBuAgMg4N9d HAFJSSZgBTFbZCG7
YjtJeMBxidBkC9ehnFykSFokpEUKA2klsbGQUeWYXyL9RCo+3tCWVuSOVHZI CONQZSPuOIxshLmt
WM7CmM0LTKEGxUtbFEoqNHGFLwOQqYtUT1k8nB8y/5GnbXrzYscEZzLBx4gV bvORHXAAJ6gjyEVE
kkeXnNlY6IgWO/ayY6sEVC3v+RJcrlAy/JykCv3ByLiJk1XjJM86oymJGoIS cRkQQTkfaTxZRHSi
FQIBAqCx0FM0dDSEmcWLKOoISHy0o7pIERFLag1TdDQtjWmnSyGRio9Czh2J 3FwNA7fT9KmHc8Bs
URb/eRjAAN6UFa5wIpli8qZm2iJyMLydPCWVUBhlc35H3WCvklrDD3aVq0iV H2WWkoqj+u0sKCUO
Su0m0WU8QKNzmqNZ6kmIxHClozrdY/pgOq6JpsanMm0pKky6iqzKMD1u2ctP LgWU9XnlFWDBxhZ7
1I2PZXAmS4llYuFijLFdNScXkcdl6VFKujjELoIk0nMUGybqNcUWStrAJeri WtiJxygLBApZTTIT
lLzlX2ACm2CS4pfcviQhMYFm6yLlrUSCj7dcS06wWpsUvoiptdZFkmXIhSSr ICOXuHGsRqhhDcna
Qq4FqGNdI3Omx8R2tqetLWrFQluBAqSUrFWJX9Qj6yL/mCoX/QXQf8WqxAYJ aDu3YQ6CIcXgBjuY
Ua8RkYLXhJoFPxhCjVnUZiysnTVx+MIgDrGISTPhFtXiwyOmj3GQY03bQgXF y0mOcD3h4TWl+MY4
1g929HSZEvfJxjkOspCHTOQiG/nISE6ykpfM5CY7+clQjrKUp0zlKlv5yljO spa3zOUue/nLYA6z
mMdM5jKb+cxoTrOa18zmNrv5zXCOs5znTOc62/nOeM6znvfM5z77+c+ADrSg B03oQhv60IhOtKIX
zehGO/rRkI60pCdN6Upb+tKYzrSmN83pTnv606AOtahHTWoABAIAOw==

--0016e6433954cfc37e04a96dc76d
Content-Type: text/plain; charset=us-ascii

--
To unsubscribe, e-mail: beginners-unsubscribe@perl.org
For additional commands, e-mail: beginners-help@perl.org
http://learn.perl.org/

--0016e6433954cfc37e04a96dc76d--

Re: Output formatting help

am 01.08.2011 11:53:11 von Paolo Gianrossi

--20cf307f30a28a76ec04a96e9a72
Content-Type: text/plain; charset=ISO-8859-1

2011/8/1 newbie01 perl

>
> Hi all,
>
>
Hi!


> I have several *nix version of Unix and while some I can use df -h, for
> some I can't. The only common thing that I can use that works for all is df
> -k.
>
> ========================================
> Below is the output when running df -k:
> ========================================
>
> Filesystem kbytes used avail capacity Mounted on
> /dev/md/dsk/d1 8268461 4133009 4052768 51% /
> /proc 0 0 0 0% /proc
> mnttab 0 0 0 0% /etc/mnttab
> fd 0 0 0 0% /dev/fd
> /dev/md/dsk/d3 8268461 5751241 2434536 71% /var
> swap 46176776 64 46176712 1% /var/run
> dmpfs 46176712 0 46176712 0% /dev/vx/dmp
> dmpfs 46176712 0 46176712 0% /dev/vx/rdmp
> swap 53453216 7276504 46176712 14% /tmp
> /dev/md/dsk/d4 16526762 8075725 8285770 50% /opt
> /dev/vx/dsk/dg_volarch/SUNWspro
> 6094894 5173296 860650 86% /opt/SUNWspro.local
> /dev/vx/dsk/dg_volarch/volarch
> 83886080 61130760 22577632 74% /vx_mnt/volarch
> aklns001:/vol/vol_admin/public
> 322355200 291922136 30433064 91% /nas_mnt/public
> /dev/odm 0 0 0 0% /dev/odm
> aklns002:/vol/vol_admin/prodhome
> 33646592 25395656 8250936 76% /home/users
> /vol/dev/dsk/c0t0d0/sol_10_1008_sparc
> 2599020 2599020 0 100%
> /cdrom/sol_10_1008_sparc
> aklns003-va2:/vol/vol_aftp/aftp/app
> 48179200 39619484 8559716 83%
> /nas_mnt/aklns022/app_aftp
> /dev/vx/dsk/dg_ico/prod01_db
> 188743680 136754136 51583424 73%
> /vx_mnt/db/prod01
> /dev/vx/dsk/dg_ico/prod01_app
> 52428800 31237744 21030000 60%
> /vx_mnt/app/prod01
>
> Interestingly, if I re-direct the output to a file, I get one line for each
> which is a lot better than the screen output. For example, if I do df -k >
> /tmp/x, the contents of /tmp/x is as below:
>
>
> Filesystem kbytes used avail capacity Mounted on
> /dev/md/dsk/d1 8268461 4133009 4052768 51% /
> /proc 0 0 0 0% /proc
> mnttab 0 0 0 0% /etc/mnttab
> fd 0 0 0 0% /dev/fd
> /dev/md/dsk/d3 8268461 5750757 2435020 71% /var
> swap 45929352 64 45929288 1% /var/run
> dmpfs 45929288 0 45929288 0% /dev/vx/dmp
> dmpfs 45929288 0 45929288 0% /dev/vx/rdmp
> swap 53205808 7276520 45929288 14% /tmp
> /dev/md/dsk/d4 16526762 8079410 8282085 50% /opt
> /dev/vx/dsk/dg_volarch/SUNWspro 6094894 5173296 860650 86%
> /opt/SUNWspro.local
> /dev/vx/dsk/dg_volarch/volarch 83886080 61184016 22524792 74%
> /vx_mnt/volarch
> aklns001:/vol/vol_admin/public 322355200 291933108 30422092 91%
> /nas_mnt/public
> /dev/odm 0 0 0 0% /dev/odm
> aklns002:/vol/vol_admin/prodhome 33646592 25395684 8250908 76%
> /home/users
> /vol/dev/dsk/c0t0d0/sol_10_1008_sparc 2599020 2599020 0 100%
> /cdrom/sol_10_1008_sparc
> aklns003-va2:/vol/vol_aftp/aftp/app 48179200 39619484 8559716 83%
> /nas_mnt/aklns022/app_aftp
> /dev/vx/dsk/dg_ico/prod01_db 188743680 136754136 51583424 73%
> /vx_mnt/db/prod01
> /dev/vx/dsk/dg_ico/prod01_app 52428800 31239768 21027992 60%
> /vx_mnt/app/prod01
>
> I've attached a screenshot of the desired output that am hoping to have.
> Tried to paste the manual formatting that I did but it comes out jagged
> similar to the output to a file.
>
> At the moment, only way I can think of getting the kind of formatting that
> am wanting to have is to do as below:
> - Read each line of the df output where each column of the line is a
> separate field
> - Count the number of characters for each respective field
> - Note down what is the max characters for each respective field, this will
> be the max number of characters + 10 for each field, each column that is
> less than this max characters will be padded with spaces
> - Then print out each line left-justified using Perl print formatting
>
>
Can you get to CPAN modules? I'd use e.g. Text::Table:

use strict;
use warnings;

use Text::Table;
my $tb = Text::Table->new(
'Filesystem', 'kbytes','used', 'avail', 'capacity', 'Mounted on',
);

while(){
$tb->load($_);
}

print $tb;

__DATA__
/dev/md/dsk/d1 8268461 4133009 4052768 51% /
/proc 0 0 0 0% /proc
mnttab 0 0 0 0% /etc/mnttab

Not sure if this is the best way to format the output to the one that I want
> to but can't think of any way of doing it.
>
> Preferably, would want to be able to show the df output in GB/MB as well.
> That means I have to do my own conversion since some of the Solaris/*nix
> that I have does not have the -h option. That should be the next objective
> once I've figure out how to do the format thingy.


my $mb = $kb * 1024;
my $gb = $mb * 1024;

BTW, am using the system command or backticks to run df -k.
>
> Hopefully, the df output to file will always be one line for each. Any
> suggestion will be much appreciated. Thanks in advance.
>


HTH

cheers
paolino

>
>
>
> --
> To unsubscribe, e-mail: beginners-unsubscribe@perl.org
> For additional commands, e-mail: beginners-help@perl.org
> http://learn.perl.org/
>
> --
Paolo Gianrossi

(An unmatched left parenthesis
creates an unresolved tension
that will stay with you all day
-- xkcd

--20cf307f30a28a76ec04a96e9a72--

Re: Output formatting help

am 02.08.2011 23:38:32 von Linux Expert

--005045029514c3b4f804a98c9168
Content-Type: text/plain; charset=ISO-8859-1

On Mon, Aug 1, 2011 at 1:54 AM, newbie01 perl wrote:

>
> Hi all,
>
> I have several *nix version of Unix and while some I can use df -h, for
> some I can't. The only common thing that I can use that works for all is df
> -k.
>
> ========================================
> Below is the output when running df -k:
> ========================================
>
> Filesystem kbytes used avail capacity Mounted on
> /dev/md/dsk/d1 8268461 4133009 4052768 51% /
> /proc 0 0 0 0% /proc
> mnttab 0 0 0 0% /etc/mnttab
> fd 0 0 0 0% /dev/fd
> /dev/md/dsk/d3 8268461 5751241 2434536 71% /var
> swap 46176776 64 46176712 1% /var/run
> dmpfs 46176712 0 46176712 0% /dev/vx/dmp
> dmpfs 46176712 0 46176712 0% /dev/vx/rdmp
> swap 53453216 7276504 46176712 14% /tmp
> /dev/md/dsk/d4 16526762 8075725 8285770 50% /opt
> /dev/vx/dsk/dg_volarch/SUNWspro
> 6094894 5173296 860650 86% /opt/SUNWspro.local
> /dev/vx/dsk/dg_volarch/volarch
> 83886080 61130760 22577632 74% /vx_mnt/volarch
> aklns001:/vol/vol_admin/public
> 322355200 291922136 30433064 91% /nas_mnt/public
> /dev/odm 0 0 0 0% /dev/odm
> aklns002:/vol/vol_admin/prodhome
> 33646592 25395656 8250936 76% /home/users
> /vol/dev/dsk/c0t0d0/sol_10_1008_sparc
> 2599020 2599020 0 100%
> /cdrom/sol_10_1008_sparc
> aklns003-va2:/vol/vol_aftp/aftp/app
> 48179200 39619484 8559716 83%
> /nas_mnt/aklns022/app_aftp
> /dev/vx/dsk/dg_ico/prod01_db
> 188743680 136754136 51583424 73%
> /vx_mnt/db/prod01
> /dev/vx/dsk/dg_ico/prod01_app
> 52428800 31237744 21030000 60%
> /vx_mnt/app/prod01
>
> Interestingly, if I re-direct the output to a file, I get one line for each
> which is a lot better than the screen output. For example, if I do df -k >
> /tmp/x, the contents of /tmp/x is as below:
>
>
> Filesystem kbytes used avail capacity Mounted on
> /dev/md/dsk/d1 8268461 4133009 4052768 51% /
> /proc 0 0 0 0% /proc
> mnttab 0 0 0 0% /etc/mnttab
> fd 0 0 0 0% /dev/fd
> /dev/md/dsk/d3 8268461 5750757 2435020 71% /var
> swap 45929352 64 45929288 1% /var/run
> dmpfs 45929288 0 45929288 0% /dev/vx/dmp
> dmpfs 45929288 0 45929288 0% /dev/vx/rdmp
> swap 53205808 7276520 45929288 14% /tmp
> /dev/md/dsk/d4 16526762 8079410 8282085 50% /opt
> /dev/vx/dsk/dg_volarch/SUNWspro 6094894 5173296 860650 86%
> /opt/SUNWspro.local
> /dev/vx/dsk/dg_volarch/volarch 83886080 61184016 22524792 74%
> /vx_mnt/volarch
> aklns001:/vol/vol_admin/public 322355200 291933108 30422092 91%
> /nas_mnt/public
> /dev/odm 0 0 0 0% /dev/odm
> aklns002:/vol/vol_admin/prodhome 33646592 25395684 8250908 76%
> /home/users
> /vol/dev/dsk/c0t0d0/sol_10_1008_sparc 2599020 2599020 0 100%
> /cdrom/sol_10_1008_sparc
> aklns003-va2:/vol/vol_aftp/aftp/app 48179200 39619484 8559716 83%
> /nas_mnt/aklns022/app_aftp
> /dev/vx/dsk/dg_ico/prod01_db 188743680 136754136 51583424 73%
> /vx_mnt/db/prod01
> /dev/vx/dsk/dg_ico/prod01_app 52428800 31239768 21027992 60%
> /vx_mnt/app/prod01
>
> I've attached a screenshot of the desired output that am hoping to have.
> Tried to paste the manual formatting that I did but it comes out jagged
> similar to the output to a file.
>
> At the moment, only way I can think of getting the kind of formatting that
> am wanting to have is to do as below:
> - Read each line of the df output where each column of the line is a
> separate field
> - Count the number of characters for each respective field
> - Note down what is the max characters for each respective field, this will
> be the max number of characters + 10 for each field, each column that is
> less than this max characters will be padded with spaces
> - Then print out each line left-justified using Perl print formatting
>
> Not sure if this is the best way to format the output to the one that I
> want to but can't think of any way of doing it.
>
> Preferably, would want to be able to show the df output in GB/MB as well.
> That means I have to do my own conversion since some of the Solaris/*nix
> that I have does not have the -h option. That should be the next objective
> once I've figure out how to do the format thingy.
>
> BTW, am using the system command or backticks to run df -k.
>
> Hopefully, the df output to file will always be one line for each. Any
> suggestion will be much appreciated. Thanks in advance.
>
>
>
> --
> To unsubscribe, e-mail: beginners-unsubscribe@perl.org
> For additional commands, e-mail: beginners-help@perl.org
> http://learn.perl.org/
>
>
Take a look at the Filesys::Df module from CPAN. That's what I use,
although I've only tried it on linux (various distros).

--005045029514c3b4f804a98c9168--