08-25-2006
gnuplotting in a shell
Hi,
I am trying to automate the gnuplotting of more than 500 data files. For this, I have written a script which is working fine but for one issue...
The problem is that I have to plot the whole data and then plot the row starting with 60001 because I use a different symbol for it. Therefore I look in my data files for a particular row starting with 60001. As you can see below in my script, I do this with gawk. My data files look like
-----------------------------------------
##comment
##comment
45601 value1 value2 etc ...
34210 value1 value2 etc ...
21345 value1 value2 etc ...
.
.
60001 value1 value2 etc ...
34213 value1 value2 etc ...
--------------------------------------------
The row starting with 60001 changes its position in the different data files, so that I have to gawk it out.
The script is:
-----------------------------------------------------
#!/usr/bin/env zsh
for f in *.asc.gz ; do
eps_file=`basename $f .asc.gz`.eps
gnuplot <<EOF
unset key
set xrange [-15:15]
set yrange [-15:15]
set xlabel "X (pc)" font "Helvetica,12"
set ylabel "Y (pc)" font "Helvetica,12"
set terminal postscript eps enhanced ; set output "$eps_file"
set pointsize 1
plot "< zcat $f" using 3:4 with dots lt 8;
set pointsize 2;
replot "< zcat $f | gawk -v NAME=60001 '/AS/ {TIME=$4} $1==NAME {print TIME,$2,$3,$4,$5,$6,$7,$8,$11; exit}'" using 3:4 with points pt 6 lt -1 ;
unset output
EOF
done
---------------------------------------------------
(I print more columns that I need but this is not the problem)
When I give gnuplot the commands for a single data file I get what I want; when I execute the script in the directory with 500 files, I get
--------------------------------------
gawk: /AS/ {TIME=} ==NAME {print TIME,,,,; exit}
gawk: ^ syntax error
gawk: /AS/ {TIME=} ==NAME {print TIME,,,,; exit}
gawk: ^ syntax error
gawk: /AS/ {TIME=} ==NAME {print TIME,,,,; exit}
gawk: ^ syntax error
gawk: /AS/ {TIME=} ==NAME {print TIME,,,,; exit}
gawk: ^ syntax error
gawk: /AS/ {TIME=} ==NAME {print TIME,,,,; exit}
gawk: ^ syntax error
gawk: /AS/ {TIME=} ==NAME {print TIME,,,,; exit}
gawk: ^ syntax error
zcat: stdout: Broken pipe
gnuplot> plot "< zcat Splotch4_0010_part.asc.gz" using 3:4 with dots lt 8, "< zcat Splotch4_0010_part.asc.gz | gawk -v NAME=60001 '/AS/ {TIME=} ==NAME {print TIME,,,,; exit}'" using 3:4 with points pt 6 lt -1 ;
^
line 0: no data point found in specified file
------------------------------------------
and so on and so forth...
Can anybody help me?
Thanks in any case
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi ,
I am having one situation in which I need to run some simple unix commands after doing "chroot" command in a shell script. Which in turn creates a new shell.
So scenario is that
- I need to have one shell script which is ran as a part of crontab
- in this shell script I need to do a... (2 Replies)
Discussion started by: hkapil
2 Replies
2. AIX
Hi,
Please give me the detailed Differences between writing Unix Shell script and AIX Shell Scripts. Thanks in advance..... (0 Replies)
Discussion started by: haroonec
0 Replies
3. Linux
Hi
I tried with bash --login option. but the output is
siva:~$ bash --login
siva:~$
is there any way to make the shell ask for user id and password ( and login as different user instead of using sudo / su )
Thx in advance
Siva (3 Replies)
Discussion started by: Sivaswami
3 Replies
4. Shell Programming and Scripting
i have a small problem getting a batxh shell script to run in shell
this is the code
the problem seems to be centered around the ffmpeg command, something maybe to do with the ' ' wrapping around the vhook part command
this is a strange problem , if i take the ffmpeg command and... (1 Reply)
Discussion started by: wingchun22
1 Replies
5. Shell Programming and Scripting
Hi,
I am using HP-UNIX.
I have a requirement as below
I have to change env twice like:
cadenv <env>
cadenv <env>
ccm start -d /dbpath
ccm tar -xvf *.tar
ccm rcv ....
mv *.tar BACKUP
but after I do the first cadenv <env> , I am unable to execute any of the later commands .
... (6 Replies)
Discussion started by: charlei
6 Replies
6. Shell Programming and Scripting
Hello gurus,
I have three korn shell script 3.1, 3.2, 3.3. I would like to call three shell script in one shell script.
i m looking for something like this
call 3.1;
If 3.1 = "complete" then
call 3.2;
if 3.2 = ''COMPlete" then
call 3.3;
else
exit
The... (1 Reply)
Discussion started by: shashi369
1 Replies
7. Shell Programming and Scripting
basically i'm tired of hitting the left arrow a few dozen times when correcting a mistake or modifying a history command
i'd like to use vim style key shortcuts while on the command line so that a 55 moves the cursor 55 places to the left...
and i want all the other vi goodies, search of... (3 Replies)
Discussion started by: marqul
3 Replies
8. UNIX for Dummies Questions & Answers
Options::
A)$shell
B)echo $ bash
C)echo $ O
D)$ O (1 Reply)
Discussion started by: raghugowda
1 Replies
9. UNIX for Dummies Questions & Answers
sxsaaas (3 Replies)
Discussion started by: VikrantD
3 Replies
10. Shell Programming and Scripting
Dear Friends,
Please help me on this
my script name is send.csh
In this i have written the statement like this
set args = ( city state country price )
I want to pass this array to another c shell called receiver.csh. and i want to use it in this c shell
or
how to pass to... (2 Replies)
Discussion started by: SA_Palani
2 Replies
LEARN ABOUT DEBIAN
qwtscalearithmetic
QwtScaleArithmetic(3) Qwt User's Guide QwtScaleArithmetic(3)
NAME
QwtScaleArithmetic -
Arithmetic including a tolerance.
SYNOPSIS
#include <qwt_scale_engine.h>
Static Public Member Functions
static double ceil125 (double x)
static double ceilEps (double value, double intervalSize)
static int compareEps (double value1, double value2, double intervalSize)
static double divideEps (double interval, double steps)
static double floor125 (double x)
static double floorEps (double value, double intervalSize)
Detailed Description
Arithmetic including a tolerance.
Member Function Documentation
double QwtScaleArithmetic::ceil125 (doublex) [static] Find the smallest value out of {1,2,5}*10^n with an integer number n which is greater
than or equal to x
Parameters:
x Input value
double QwtScaleArithmetic::ceilEps (doublevalue, doubleintervalSize) [static] Ceil a value, relative to an interval
Parameters:
value Value to ceil
intervalSize Interval size
See also:
floorEps()
int QwtScaleArithmetic::compareEps (doublevalue1, doublevalue2, doubleintervalSize) [static]
Compare 2 values, relative to an interval. Values are 'equal', when : $
Parameters:
value1 First value to compare
value2 Second value to compare
intervalSize interval size
Returns:
0: if equal, -1: if value2 > value1, 1: if value1 > value2
double QwtScaleArithmetic::divideEps (doubleintervalSize, doublenumSteps) [static]
Divide an interval into steps. $stepSize = (intervalSize - intervalSize * 10e^{-6}) / numSteps$.PP Parameters:
intervalSize Interval size
numSteps Number of steps
Returns:
Step size
double QwtScaleArithmetic::floor125 (doublex) [static]
Find the largest value out of {1,2,5}*10^n with an integer number n which is smaller than or equal to x. Parameters:
x Input value
double QwtScaleArithmetic::floorEps (doublevalue, doubleintervalSize) [static] Floor a value, relative to an interval
Parameters:
value Value to floor
intervalSize Interval size
See also:
floorEps()
Author
Generated automatically by Doxygen for Qwt User's Guide from the source code.
Version 5.2.2 Mon Aug 1 2011 QwtScaleArithmetic(3)