Re: Setting Multiple Shell Variables from One Run of awk
- From: Ken Irving <fnkci@xxxxxxx>
- Date: Tue, 30 Sep 2008 11:40:26 -0800
On Tue, Sep 30, 2008 at 01:48:46PM -0500, Martin McCormick wrote:
Right now, I have a shell script that does the following:
hostname=`echo $NEWDEV |awk 'BEGIN{FS="."}{print $1}'`
domain=`echo $NEWDEV |awk 'BEGIN{FS="."}{print $2}'`
top0=`echo $NEWDEV |awk 'BEGIN{FS="."}{print $3}'`
top1=`echo $NEWDEV |awk 'BEGIN{FS="."}{print $4}'`
That looks inefficient (dumb) so I ask, is there a way
to assign the fields in an awk expression to shell variables as
one runs awk once?
From awk(1):
OPTIONS
-v var=val
--assign var=val
Assign the value val to the variable var, before
execution of the program begins. Such variable values
are available to the BEGIN block of an AWK program.
So maybe try:
hostname=$(awk -v FS=$NEWDEV '{print $1}')
Being able to do that would mean one run of awk instead
of the 4 shown here and, if file accesses are involved, there is
only one of those.
Ok, the above doesn't address that issue, but maybe you could set a
shell array with several values in one operation. If you write a
shell script to set the variables, maybe you could then source that
script so that the changes are made to the current shell.
Ken
--
Ken Irving, fnkci@xxxxxxx, 907-474-6152
Water and Environmental Research Center
Institute of Northern Engineering
University of Alaska, Fairbanks
--
To UNSUBSCRIBE, email to debian-user-REQUEST@xxxxxxxxxxxxxxxx
with a subject of "unsubscribe". Trouble? Contact listmaster@xxxxxxxxxxxxxxxx
- References:
- Setting Multiple Shell Variables from One Run of awk
- From: Martin McCormick
- Setting Multiple Shell Variables from One Run of awk
- Prev by Date: Re: how to create an image of your debian computer hard drive for cloning
- Next by Date: Re: Trouble with USB printer
- Previous by thread: Re: Setting Multiple Shell Variables from One Run of awk
- Next by thread: Re: Setting Multiple Shell Variables from One Run of awk
- Index(es):
Relevant Pages
|