AWK command

Hi,

Please help me in doing this..

$ disklabel dsk1
# /dev/rdisk/dsk1c:
type: SCSI
disk: BD018635C4
label:
flags: dynamic_geometry
bytes/sector: 512
sectors/track: 254
tracks/cylinder: 20
sectors/cylinder: 5080
cylinders: 7001
sectors/unit: 35565080
rpm: 10025
interleave: 1
trackskew: 84
cylinderskew: 74
headswitch: 0 # milliseconds
track-to-track seek: 0 # milliseconds
drivedata: 0
8 partitions:
# size offset fstype fsize bsize cpg # ~Cyl values
a: 131072 0 unused 0 0 # 0 - 25*
b: 262144 131072 unused 0 0 # 25*- 77*
c: 35565080 0 unused 0 0 # 0 - 7000
d: 0 0 unused 0 0 # 0 - 0
e: 0 0 unused 0 0 # 0 - 0
f: 0 0 unused 0 0 # 0 - 0
g: 17585932 393216 unused 0 0 # 77*- 3539*
h: 17585932 17979148 unused 0 0 # 3539*- 7000

Above is the "disklabel" (command) output .

From above output first it must take 4 partitions(a: , b: , g: . h: ) .

And it must check fstype column =unused for all above 4 partitions.And among those 4 partitions finally i need the partitions which has fstype=unused.

Please let me know how to get the output by using awk or by any other commands..

Thanks,
mansa.

awk '/^a|^b|^g|^h/ && $4 == "unused" {sub(/:/,"",$1); print $1}' infile

Since all 4 wanted partitions have "unused", you will get all 4 of them.

another way

# awk -F":| " '/^(a|b|g|h)/&&$5=="unused"{print $1}' file

Hi,

I tried as below way..

$ disklabel dsk2 > file

$ t=`awk -F":expressionless: " '/^(a|b|g|h)/&&$5=="unused"{print $1}' file`
$ echo $t

$

I didnt get any output...

Please let me know how can i get value in "t" variable..

Thanks,
mansa.

then use zaxxon's method.

Hi zaxxon,

I tried as per your comments..Could you please look at it...

$ disklabel dsk2 > infile

t=`awk '/^a|^b|^g|^h/ && $4 == "unused" {sub(/:/,"",$1); print $1}' infile`
$ echo $t

$

It didnt display any output...

Could you please let me know how to get value in $t.

Thanks in Advance,
Mansa

execute the awk commands on the command line and see what you get. don't assign to any variables yet !

root@isau02:/data/tmp/testfeld> cat infile
# /dev/rdisk/dsk1c:
type: SCSI
disk: BD018635C4
label:
flags: dynamic_geometry
bytes/sector: 512
sectors/track: 254
tracks/cylinder: 20
sectors/cylinder: 5080
cylinders: 7001
sectors/unit: 35565080
rpm: 10025
interleave: 1
trackskew: 84
cylinderskew: 74
headswitch: 0 # milliseconds
track-to-track seek: 0 # milliseconds
drivedata: 0
8 partitions:
# size offset fstype fsize bsize cpg # ~Cyl values
a: 131072 0 unused 0 0 # 0 - 25*
b: 262144 131072 unused 0 0 # 25*- 77*
c: 35565080 0 unused 0 0 # 0 - 7000
d: 0 0 unused 0 0 # 0 - 0
e: 0 0 unused 0 0 # 0 - 0
f: 0 0 unused 0 0 # 0 - 0
g: 17585932 393216 unused 0 0 # 77*- 3539*
h: 17585932 17979148 unused 0 0 # 3539*- 7000
root@isau02:/data/tmp/testfeld> awk '/^a|^b|^g|^h/ && $4 == "unused" {sub(/:/,"",$1); print $1}' infile
a
b
g
h
root@isau02:/data/tmp/testfeld> t=`awk '/^a|^b|^g|^h/ && $4 == "unused" {sub(/:/,"",$1); print $1}' infile`
root@isau02:/data/tmp/testfeld> echo $t
a b g h

Hi,

$ disklabel dsk2 > infile
$ awk '/^a|^b|^g|^h/ && $4 == "unused" {sub(/:/,"",$1); print $1}' infile

Nothing displaying here..

I want the output as value=4(if all 4 partitions are unused)
and names of partitions which are unused among 4.

Please let me know.

Thanks,
Mansa

Hi Zaxxon,

I too tried the same way but i didnt get the output..

$ disklabel dsk1 > infile
mullins:/qarun/tools/lib (ROOT) >
$ cat infile
# /dev/rdisk/dsk1c:
type: SCSI
disk: BD018635C4
label:
flags: dynamic_geometry
bytes/sector: 512
sectors/track: 254
tracks/cylinder: 20
sectors/cylinder: 5080
cylinders: 7001
sectors/unit: 35565080
rpm: 10025
interleave: 1
trackskew: 84
cylinderskew: 74
headswitch: 0 # milliseconds
track-to-track seek: 0 # milliseconds
drivedata: 0
8 partitions:
# size offset fstype fsize bsize cpg # ~Cyl values
a: 131072 0 unused 0 0 # 0 - 25*
b: 262144 131072 unused 0 0 # 25*- 77*
c: 35565080 0 unused 0 0 # 0 - 7000
d: 0 0 unused 0 0 # 0 - 0
e: 0 0 unused 0 0 # 0 - 0
f: 0 0 unused 0 0 # 0 - 0
g: 17585932 393216 unused 0 0 # 77*- 3539*
h: 17585932 17979148 unused 0 0 # 3539*- 7000
mullins:/qarun/tools/lib (ROOT) >
$ awk '/^a|^b|^g|^h/ && $4 == "unused" {sub(/:/,"",$1); print $1}' infile
mullins:/qarun/tools/lib (ROOT) >
$

Could you please let me know, what mistake am doing here..
Thanks,
mansa

Hi,

Might be it differs with Shell..
I am trying it on ksh shell...

========================

mullins:/qarun (ROOT) >
$ disklabel dsk1 > infile
mullins:/qarun (ROOT) >
$ cat infile
# /dev/rdisk/dsk1c:
type: SCSI
disk: BD018635C4
label:
flags: dynamic_geometry
bytes/sector: 512
sectors/track: 254
tracks/cylinder: 20
sectors/cylinder: 5080
cylinders: 7001
sectors/unit: 35565080
rpm: 10025
interleave: 1
trackskew: 84
cylinderskew: 74
headswitch: 0 # milliseconds
track-to-track seek: 0 # milliseconds
drivedata: 0
8 partitions:
# size offset fstype fsize bsize cpg # ~Cyl values
a: 131072 0 unused 0 0 # 0 - 25*
b: 262144 131072 unused 0 0 # 25*- 77*
c: 35565080 0 unused 0 0 # 0 - 7000
d: 0 0 unused 0 0 # 0 - 0
e: 0 0 unused 0 0 # 0 - 0
f: 0 0 unused 0 0 # 0 - 0
g: 17585932 393216 unused 0 0 # 77*- 3539*
h: 17585932 17979148 unused 0 0 # 3539*- 7000
mullins:/qarun (ROOT) >
$ awk '/^a|^b|^g|^h/ && $4 == "unused" {sub(/:/,"",$1); print $1}' infile
mullins:/qarun (ROOT) >
$ echo $SHELL
/bin/ksh

Please let me know your inputs on this..

Thanks,
Mansa