Hi nirjhar17,
To get the output you said you wanted in the 3rd message in this thread (except for inconsistent spacing in the output you showed in the symmask commands), the following shell and awk script seems to do what you want. This script will work with any POSIX conforming shell (including bash and ksh). The sed command you gave in your script didn't work on OS X, so I built it into the awk script. (I assume that the file /tmp/devices contains:
from what you said you wanted in the symmask commands. But, one of the symmask commands shows one space in the 1st line and the other symmask command shows two spaces in the 1st line???)
Anyway, with the script:
(If you want to run this on a Solaris/SunOS system, use /usr/xpg4/bin/awk, /usr/xpg6/bin/awk, or nawk instead of awk.)
With the prompts (shown in black) and the responses (shown in blue):
the output stored in /tmp/"$hostname" is:
The difference between this output and the output you said you wanted is:
In addition to producing the output you said you wanted, since this script has one invocation of awk (instead of six invocations of cat, two invocations of sed, and four invocations of awk), it should also run a little bit faster.
This User Gave Thanks to Don Cragun For This Post:
Thanks Don!! And thanks for the wonderful code. But can you please look in to my code also and tell me how to modify my code so that i will get my write disable,unmap and symmask commands together like your o/p...i have tried my code in solaris and for symmask there was no issue with the spacing ...i have pasted all the o/p's for your reference ...Thanks again!! MY code Result Desired output
Thanks Don!! And thanks for the wonderful code. But can you please look in to my code also and tell me how to modify my code so that i will get my write disable,unmap and symmask commands together like your o/p...i have tried my code in solaris and for symmask there was no issue with the spacing ...i have pasted all the o/p's for your reference ...Thanks again!!
... ... ...
The contents of /tmp/devices in your earlier example clearly had two columns of data per line; not one. With the above contents of /tmp/devices, there would be no spacing problem. (The only spacing problem in the data you provided before was that the results when your ran your sed command twice with the same input data produced one more space in the output on one of the runs than it did on the other. I expect that it was a cut and paste error, unless the contents of /tmp/devices was being changed by something else while your script was running.)
Having given you a portable, relatively fast script that should work reliably on any Linux or UNIX system using any bash or ksh shell, I have no desire to try to fix your script to work on a system where I can't test it. (The forms of echo in your script and the sed script that you're using do not work on OS X on the MacBook Pro laptop system where I test the examples I provide for this forum. And all of the invocations of cat that are in your script only serve to unnecessarily consume system resources slowing down your script and making the system less responsive for any other users who may be running other code on your system at the same time.)
If you gather the director, port, and wwn data in shell arrays at the start of your shell script and use un-nested and nested for loops in your shell script mimicking the for loops in the awk script I gave you, you should be able to duplicate the output my awk script produced.
This User Gave Thanks to Don Cragun For This Post:
Hi all,
i developed a script to measure the uptime of a process in a Solaris 10/11 environments.
All is well, but i came across a situation where there are multiple processes of the same name. Basically i have the following result file:
beVWARS 13357 19592122
beVWARS 14329 19591910... (4 Replies)
Hi,
I want to read file multiple times. Right now i am using while loop but that is not working.
ex.
While read line
do
while read line2
do
echo stmt1
#processing some data based on data.,
done < file2.txt
done < file1.txt # This will have 10... (4 Replies)
Hello All,
Maybe I'm Missing something here but I have NOOO idea what the heck is going on with this....?
I have a Variable that contains a PATTERN of what I'm considering "Illegal Characters". So what I'm doing is looping
through a string containing some of these "Illegal Characters". Now... (5 Replies)
Hi, I was debating if I should put this in the dummies or scripts section, I apologize in advance if I chose poorly.
Fairly new to Unix and BASH scripting but I thought I made it fairly well given my limited understanding. However, the output indicates that it's looping and I'm ending up with a... (5 Replies)
Hi,
hope I am posting in the right section.
My problem is that I have 2 or more arguments passed and I want to check if the arguments passed exists or not.
The first argument should not exist and the remaining others should exist.
example:
./shells.sh argument1 argument2 argument3
... (5 Replies)
Hi all
Sorry for the basic question, but i am writing a shell script to get around a slightly flaky binary that ships with one of our servers. This particular utility randomly generates the correct information and could work first time or may work on the 12th or 100th attempt etc !.... (4 Replies)
Hi Im running this script, which is supposed to find the max value build some tables and then stop running once all the tables are built. Thing is , it keeps assigning a null value to $h and then $g is null so it keep building tables i.e. testupdateNUL. How can I stop this? Here is what I have:
... (4 Replies)
I'm trying to understand if it's possible to create a set of variables that are numbered based on another variable (using eval) in a loop, and then call on it before the loop ends.
As an example I've written a script called question (The fist command is to show what is the contents of the... (2 Replies)
Sorry for such a dreadful title, but I'm not sure how to be more descriptive. I'm hoping some of the more gurutastic out there can take a look at a solution I came up with to a problem, and advice if there are better ways to have gone about it.
To make a long story short around 20K pieces of... (2 Replies)