- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - Linux
- >
- Re: scripting help
Categories
Company
Local Language
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Discussions
Discussions
Forums
Discussions
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Community
Resources
Forums
Blogs
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-14-2013 02:44 AM
11-14-2013 02:44 AM
scripting help
hello
I'd like some help with a script
I have a file with the following data
Device Product Device
---------------------- --------------------------- ---------------------
Name Type Vendor ID Rev Ser Num Cap (KB)
---------------------- --------------------------- ---------------------
/dev/sdbc M(2) EMC SYMMETRIX 5876 110265D000 17677440
/dev/sdbd M(3) EMC SYMMETRIX 5876 110265F000 53032320
/dev/sdbe M(2) EMC SYMMETRIX 5876 1102705000 17677440
/dev/sdbf DGC RAID 5 0326 8600001D 62914560
/dev/sdbg DGC RAID 5 0326 8D0000AA 199229440
/dev/sdbh DGC RAID 5 0326 09000028 26214400
/dev/emcpoweraa DGC RAID 5 0326 8600001D 62914560
some lines have 6 fields and other lines have seven fields
I execute the pvs command and I want to search each lun from the EMC output and depending on the number of fields to determine what to print
PV VG Fmt Attr PSize PFree
/dev/emcpowerm emcvg lvm2 a- 67.43G 0
/dev/emcpowero VG1 lvm2 a- 16.86G 11.86G
/dev/emcpowerp bc2eoaipp1vg lvm2 a- 50.57G 8.57G
/dev/sda2 systemvg lvm2 a- 33.59G 0
/dev/sdad emcvg lvm2 a- 67.43G 428.00M
so I have come up with
cat /tmp/pvs |awk 'NR>1 {sub("\/dev\/","",$1);print $1,$2,$5}' |while read PV VG PSZ
do
awk -v search=${PV} '$0 ~ search {if (line != "") print line; line =$NF} {if(NF==6) {line=$1":"$4":"$5":"$NF}} {if(NF==7) {line=$1":"$5":"$6":"$NF}};END{print line}' /tmp/symcli.data)
done
it doesnt quite work because the output is the same
/dev/emcpoweraa:0326:8600001D:62914560
/dev/emcpoweraa:0326:8600001D:62914560
/dev/emcpoweraa:0326:8600001D:62914560
/dev/emcpoweraa:0326:8600001D:62914560
/dev/emcpoweraa:0326:8600001D:62914560
/dev/emcpoweraa:0326:8600001D:62914560
/dev/emcpoweraa:0326:8600001D:62914560
can someone help out with the syntax please :)
thanks
Chris
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-14-2013 10:20 PM
11-14-2013 10:20 PM
Re: scripting help
Hello.
it's not a syntax issue, it's a logic issue.
For the sample data files provided, none of your lines match this line:
$0 ~ search
However for each line from the "/tmp/symcli.data" file, the last line matches this check:
if(NF==7)
As such, "END{print line}" always prints the last line from that file.
You will want to revisit your logic.
Regards,
Goran