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 CENTOS
dumpvalue
Dumpvalue(3pm) Perl Programmers Reference Guide Dumpvalue(3pm)
NAME
Dumpvalue - provides screen dump of Perl data.
SYNOPSIS
use Dumpvalue;
my $dumper = Dumpvalue->new;
$dumper->set(globPrint => 1);
$dumper->dumpValue(*::);
$dumper->dumpvars('main');
my $dump = $dumper->stringify($some_value);
DESCRIPTION
Creation
A new dumper is created by a call
$d = Dumpvalue->new(option1 => value1, option2 => value2)
Recognized options:
"arrayDepth", "hashDepth"
Print only first N elements of arrays and hashes. If false, prints all the elements.
"compactDump", "veryCompact"
Change style of array and hash dump. If true, short array may be printed on one line.
"globPrint"
Whether to print contents of globs.
"dumpDBFiles"
Dump arrays holding contents of debugged files.
"dumpPackages"
Dump symbol tables of packages.
"dumpReused"
Dump contents of "reused" addresses.
"tick", "quoteHighBit", "printUndef"
Change style of string dump. Default value of "tick" is "auto", one can enable either double-quotish dump, or single-quotish by
setting it to """ or "'". By default, characters with high bit set are printed as is. If "quoteHighBit" is set, they will be quoted.
"usageOnly"
rudimentary per-package memory usage dump. If set, "dumpvars" calculates total size of strings in variables in the package.
unctrl
Changes the style of printout of strings. Possible values are "unctrl" and "quote".
subdump
Whether to try to find the subroutine name given the reference.
bareStringify
Whether to write the non-overloaded form of the stringify-overloaded objects.
quoteHighBit
Whether to print chars with high bit set in binary or "as is".
stopDbSignal
Whether to abort printing if debugger signal flag is raised.
Later in the life of the object the methods may be queries with get() method and set() method (which accept multiple arguments).
Methods
dumpValue
$dumper->dumpValue($value);
$dumper->dumpValue([$value1, $value2]);
Prints a dump to the currently selected filehandle.
dumpValues
$dumper->dumpValues($value1, $value2);
Same as "$dumper->dumpValue([$value1, $value2]);".
stringify
my $dump = $dumper->stringify($value [,$noticks] );
Returns the dump of a single scalar without printing. If the second argument is true, the return value does not contain enclosing
ticks. Does not handle data structures.
dumpvars
$dumper->dumpvars('my_package');
$dumper->dumpvars('my_package', 'foo', '~bar$', '!......');
The optional arguments are considered as literal strings unless they start with "~" or "!", in which case they are interpreted as
regular expressions (possibly negated).
The second example prints entries with names "foo", and also entries with names which ends on "bar", or are shorter than 5 chars.
set_quote
$d->set_quote('"');
Sets "tick" and "unctrl" options to suitable values for printout with the given quote char. Possible values are "auto", "'" and """.
set_unctrl
$d->set_unctrl('unctrl');
Sets "unctrl" option with checking for an invalid argument. Possible values are "unctrl" and "quote".
compactDump
$d->compactDump(1);
Sets "compactDump" option. If the value is 1, sets to a reasonable big number.
veryCompact
$d->veryCompact(1);
Sets "compactDump" and "veryCompact" options simultaneously.
set
$d->set(option1 => value1, option2 => value2);
get
@values = $d->get('option1', 'option2');
perl v5.16.3 2013-03-04 Dumpvalue(3pm)