| Re: SPAWN with AWK [message #83561 is a reply to message #83550] |
Sat, 09 March 2013 07:54   |
Chip Helms
Messages: 24 Registered: November 2012
|
Junior Member |
|
|
I think IDL is interpreting the "" as a single " (since " ends the string in this case "" is used to place a single double-quote...if you started your string with a ' instead, you'd have to use '' to have IDL print a single ' ). If you change it to (min="""") I think it should work. Also, as to reading data with spawn and awk, my experience has been that it is considerably less efficient than IDL's built-in routines, but the difference is not usually noticeable unless you are calling spawn/awk a large number of time (such as in a for loop).
Cheers,
Chip
On Saturday, March 9, 2013 9:38:58 AM UTC, Hannah wrote:
> Hi there,
>
>
>
>
>
> I have to read in a lot of data files in my IDL script and thought about using SPAWN with AWK for this. So far, I did it with READCOL and WHERE functions but I find it kind of convenient to do it with just one line in AWK (but I have no idea of the efficiencies, if someone could say anything to this..).
>
>
>
> No I have some problems with my command, as there are to many ". The line looks like this:
>
>
>
> spawn, "awk '{if (min=="") {min=max=$17}; if ($17>max) {(max=$17) && (maxid=$1)}; if (($17<min) && ($17!=0.)) {(min=$17) && (minid=$1)}} END {print min, minid, max, maxid}' dat file" val_vec
>
>
>
> Not surprisingly, I get an "unterminated string" error bec of the "s at (min==""). So my question is, if anyone has an idea to fix this either in the awk command or anyhow in IDL.
>
>
>
>
>
> Thanks for your help!
>
> Hannah
|
|
|
|