RE: Very Simply KSH Question

  • From: "Post, Ethan" <Ethan.Post@xxxxxx>
  • To: "Kevin Lange" <klange@xxxxxxxxxx>, <carmen.rusu@xxxxxxxxxxxxxxx>, <mgogala@xxxxxxxxxxxxxxxxxxxx>
  • Date: Tue, 5 Apr 2005 15:03:22 -0500

list is in file

KEY|FOO|WRECK|CAR

need to assign field 2 to X, 3 to Y...

I hate...

X=3D$(cat file | grep "^FOO" | awk -F"|" '{ print $2}')
Y=3D$(cat file | grep "^FOO" | awk -F"|" '{ print $3}')
...

in many scripts I...

grep "^FOO" file | awk -F"|" '{ print $2" "$3" "$$ }' | read X Y Z

that ain't working on ?linux? yall

( perl answers don't count )

-----Original Message-----
From: Kevin Lange [mailto:klange@xxxxxxxxxx]=20
Sent: Tuesday, April 05, 2005 2:45 PM
To: 'carmen.rusu@xxxxxxxxxxxxxxx'; mgogala@xxxxxxxxxxxxxxxxxxxx; Post,
Ethan
Cc: oracle-l@xxxxxxxxxxxxx
Subject: RE: Very Simply KSH Question

I figure he either ment Delineated or Delimited (in this case delimited
by a
SPACE)

And personally, I would  have done it:



list=3D'1 5 7 22'

for value in ${list}
do
  echo ${value}
done


Then, at some time in the future, you can replace the setting of 'list'
with
anything from
a call to a function of some type or even a call to a database.


-----Original Message-----
From: Carmen Rusu [mailto:carmen.rusu@xxxxxxxxxxxxxxx]
Sent: Tuesday, April 05, 2005 2:34 PM
To: mgogala@xxxxxxxxxxxxxxxxxxxx; Ethan.Post@xxxxxx
Cc: oracle-l@xxxxxxxxxxxxx
Subject: Re: Very Simply KSH Question


Excuse me, what does "deliminated" list mean?

Couldnt find "deliminated" in my Webster...

Thanks,
Carmen Rusu
Odba

>>> Mladen Gogala <mgogala@xxxxxxxxxxxxxxxxxxxx> 4/5/2005 2:27:10 PM
>>>
Post, Ethan wrote:

>This works on my Solaris server, when I run on my web host (not sure
>what OS) it will not set X and Y.  Both are using ksh.  Is this
related
>to ksh versions or is this a stupid way to set multiple variables from
a
>deliminated list?
>
> echo 2 4 | read X Y
> echo $X
>2
> echo $Y
>4
>--
>//www.freelists.org/webpage/oracle-l=20
> =20
>
It is a stupid way to set multiple variables from a deliminated list.
Smart way would be this:

$ let A=3D2;
$ let B=3D3
$ let C=3D$A*$B
$ echo $C
6
$ echo $SHELL
/bin/ksh
$

--=20
Mladen Gogala
Oracle DBA
Ext. 121


--
//www.freelists.org/webpage/oracle-l
--
//www.freelists.org/webpage/oracle-l

--
//www.freelists.org/webpage/oracle-l

Other related posts: