- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - HP-UX
- >
- Script question
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
Forums
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
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
03-22-2002 02:56 AM
03-22-2002 02:56 AM
Hi,
Here is a sample of a file which contains PV paths for Lunids (i have simplified it sufficiently for this example):
***
002d /dev/dsk/c6t0d0 /dev/dsk/c6t0d1 /dev/dsk/c6t0d2 /dev/dsk/c6t0d3
002d /dev/dsk/c8t0d0 /dev/dsk/c8t0d1 /dev/dsk/c8t0d2 /dev/dsk/c8t0d3
002e /dev/dsk/c6t0d4 /dev/dsk/c6t0d5 /dev/dsk/c6t0d6 /dev/dsk/c6t0d7
002e /dev/dsk/c8t0d4 /dev/dsk/c8t0d5 /dev/dsk/c8t0d6 /dev/dsk/c8t0d7
****
I would like to run a script on this file and rearrange it to get the following output:
***
/dev/dsk/c6t0d0 /dev/dsk/c8t0d0 /dev/dsk/c6t0d1 /dev/dsk/c8t0d1 /dev/dsk/c8t0d2 /dev/dsk/c6t0d2 /dev/dsk/c8t0d3 /dev/dsk/c6t0d3
and so on
***
That is, it should take two successive lines and combine them in a single line with the format specified. Please note, the arrangement of pvpaths.
thanks
raj
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-22-2002 03:09 AM
03-22-2002 03:09 AM
SolutionAn inelegant method, but it should work:
=============================
#!/bin/ksh
file=$1
cat file | while read line1; do
read line2
echo $line1 | read id d1 d2 d3 d4
echo $line2 | read id d5 d6 d7 d8
echo $d1 $d5 $d2 $d6 $d7 $d3 $d8 $d4
done
=============================
Run it with:
# script filename
Rgds, Robin.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-22-2002 03:10 AM
03-22-2002 03:10 AM
Re: Script question
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-22-2002 03:30 AM
03-22-2002 03:30 AM
Re: Script question
You can split an input line ($0) and store into an array (for instance L1) using the split() function.
Then you use the getline function to read the next input line and split and store again in other array (for instance L2).
L1[1], L2[2], ... and L2[1], L2[2]... are then available for whatever you need.
I hope this be useful.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-22-2002 03:51 AM
03-22-2002 03:51 AM
Re: Script question
/dev/dsk/c6t0d0 /dev/dsk/c8t0d0 /dev/dsk/c6t0d1 /dev/dsk/c8t0d1 /dev/dsk/c6t0d2 /dev/dsk/c8t0d2 /dev/dsk/c6t0d3 /dev/dsk/c8t0d3
/dev/dsk/c6t0d4 /dev/dsk/c8t0d4 /dev/dsk/c6t0d5 /dev/dsk/c8t0d5 /dev/dsk/c6t0d6 /dev/dsk/c8t0d6 /dev/dsk/c6t0d7 /dev/dsk/c8t0d7
l1:/tmp 117 >
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-22-2002 03:57 AM
03-22-2002 03:57 AM
Re: Script question
l1:/tmp 117 > perl -nae '$_=<>;@b=split;for(1..$#F){print"$F[$_] $b[$_] "};print"\n"' file
/dev/dsk/c6t0d0 /dev/dsk/c8t0d0 /dev/dsk/c6t0d1 /dev/dsk/c8t0d1 /dev/dsk/c6t0d2 /dev/dsk/c8t0d2 /dev/dsk/c6t0d3 /dev/dsk/c8t0d3
/dev/dsk/c6t0d4 /dev/dsk/c8t0d4 /dev/dsk/c6t0d5 /dev/dsk/c8t0d5 /dev/dsk/c6t0d6 /dev/dsk/c8t0d6 /dev/dsk/c6t0d7 /dev/dsk/c8t0d7
l1:/tmp 118 >
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-22-2002 07:23 AM
03-22-2002 07:23 AM
Re: Script question
Thanks Robin. That was quick help.
Procura - I havent tried the perl liner which you sent, but will do so later. But, i noticed one thing in the output of your script. It doesnt balance the last two PVs.
-raj
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-22-2002 08:45 AM
03-22-2002 08:45 AM
Re: Script question
aa A1 A2 A3 A4 ...
aa B1 B2 B3 B4 ...
bb C1 C2 C3 C4 ...
bb D1 D2 D3 D4 ...
=>
A1 B1 A2 B2 A3 B3 A4 B4 ...
C1 D1 C2 D2 C3 D3 C4 D4 ...