Visit Our UNIX and Linux User Community


xargs and gnuplot


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting xargs and gnuplot
# 1  
Old 09-19-2009
xargs and gnuplot

Hi All,

Seems I have an xargs stdin problem that I don't understand.

I have a script (call it myscript.sh) that takes the names of one or more file(s) specified on the command line and creates a single gnuplot command file containing multiple records, one for each specified file. Each of those records is terminated by a gnuplot "pause -1" command that suspends execution until the user presses the enter key. Sort of like this:

gnuplot commands for first .dat file
pause -1


gnuplot commands for second .dat file
pause -1

etc,etc,etc

If I run 'myscript.sh file1.dat file2.dat', it works as expected and gnuplot waits for me to press the enter key before moving onto the next plot.

But, if I do something like 'ls file*.dat | xargs myscript.sh' gnuplot runs through all of the plots without waiting for me to press enter.

So, gnuplot is getting something from stdin effectively making my pause commands useless.

Any ideas would be greatly appreciated.

Thanks in advance.
# 2  
Old 09-19-2009

Unless you have enough .dat files to get "Argument list too long":

Code:
myscript.sh *.dat

# 3  
Old 09-19-2009
Quote:
Originally Posted by paulianna2002
...
If I run 'myscript.sh file1.dat file2.dat', it works as expected and gnuplot waits for me to press the enter key before moving onto the next plot.

But, if I do something like 'ls file*.dat | xargs myscript.sh' gnuplot runs through all of the plots without waiting for me to press enter.

So, gnuplot is getting something from stdin effectively making my pause commands useless.

Any ideas would be greatly appreciated.

Thanks in advance.
Maybe ls ...| xargs ... is not needed, but if that's the case, then try:

Code:
printf "%s\n" file*.dat | xargs -n1 -p myscript.sh

Also the pause -1 records might need to be removed from the gnuplot command file.
# 4  
Old 09-19-2009
Thanks for the reply cfajohnson. Your suggestion is ok for trivial cases (and I use it this way for those cases). I am having trouble with things like:
Code:
cut -f2 masterlist | myscript.sh

Other suggestions? I guess I am trying to find a way to get stdin back from the pipe and reopen it to the keyboard (or something like that)?!?!?Smilie

---------- Post updated at 06:46 PM ---------- Previous update was at 06:40 PM ----------

Quote:
ls file*.dat | xargs -n1 -p myscript.sh
Thanks rubin. Unfortunately, the most efficient way to use gnuplot in this instance is to build one command file for all specified files and then pass that one command file to gnuplot. Doing them one by one with the "-n1 -p" options won't help me in this case.

Last edited by paulianna2002; 09-19-2009 at 09:12 PM..
# 5  
Old 09-19-2009
Quote:
Originally Posted by paulianna2002
Thanks for the reply cfajohnson. Your suggestion is ok for trivial cases (and I use it this way for those cases). I am having trouble with things like:
Code:
cut -f2 masterlist | myscript.sh


Does your script read filenames from stdin? If not, you can't use a pipe like that.

Code:
myscript.sh $( cut -f2 masterlist )



---------- Post updated at 07:52 PM ---------- Previous update was at 07:48 PM ----------

Quote:
Originally Posted by paulianna2002
Unfortunately, the most efficient way to use gnuplot in this instance is to build one command file for all specified files and then pass that one command file to gnuplot. Doing them one by one with the "-n1 -p" options won't help me in this case.

If you are waiting for input, calling gnuplot repeatedly will not make much difference. (Though generally I would agree with you.)

Last edited by cfajohnson; 09-19-2009 at 09:41 PM..
# 6  
Old 09-19-2009
Quote:
Code:
myscript.sh $( cut -f2 masterlist )
Bingo! Thanks so much cfajohnson! That does what I need.

I have not seen that $( cut -f2 masterlist ) syntax before.

Any suggestions for keyword(s) I can search on to learn more about the '$(...)' ?

Thanks again!
# 7  
Old 09-19-2009
Quote:
Originally Posted by paulianna2002
Any suggestions for keyword(s) I can search on to learn more about the '$(...)' ?

Read the Command Substitution section of your shell's man page.

Previous Thread | Next Thread
Test Your Knowledge in Computers #858
Difficulty: Medium
AJAX is a set of web development techniques using many web technologies on the server-side to create asynchronous web applications.
True or False?

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Gnuplot question

Hi! Let's say I have these two columns in file.txt 0 1 1 5 2 10 3 15 4 20 5 25 in gnuplot, i would plot usingplot 'file.txt' u 1:2 If I wanted to add a label to the y-axis I would useset label "Ef" at 0.0,7.0 However, I want the label Ef to be on the otherside of the y-axis. Not... (0 Replies)
Discussion started by: sidiq1983
0 Replies

2. Shell Programming and Scripting

Gnuplot in bash

Hi, I want a graph plot using gnuplot for df -h command. like filesystem, total size and avail size. Thanks, Anjan ---------- Post updated at 02:35 PM ---------- Previous update was at 02:34 PM ---------- I want a graph plot using gnuplot for df -h command per hour. (4 Replies)
Discussion started by: Anjan1
4 Replies

3. Shell Programming and Scripting

Gnuplot command

My data input looks like this: -16.25 -38.75 9.69094 -16.25 -36.25 10.0594 -16.25 -33.75 10.3884 -16.25 -31.25 10.6653 -16.25 -28.75 10.7947 -16.25 -26.25 10.8838 -16.25 -23.75 10.8463 -16.25 -21.25 10.8131 -16.25 -18.75 10.7509 -16.25 -16.25 10.6581 -16.25 -13.75 10.6859 -16.25... (0 Replies)
Discussion started by: programmerc
0 Replies

4. UNIX for Dummies Questions & Answers

GNUPLOT problem

Hi, Im trying to plot a time series with gnuplot. this is my script set xdata time set yrange set timefmt "%H" set xrange set format x "%H:%M:%S" plot "time_vs_times.txt" using 1:2 title 'Interarrival time' with points lw 2 and this is my data 11:14:18 5 11:14:19 10... (10 Replies)
Discussion started by: jamie_123
10 Replies

5. UNIX and Linux Applications

gnuplot limitations

I'm running a simulation (programmed in C) which makes calls to gnuplot periodically to plot data I have stored. First I open a pipe to gnuplot and set it to multiplot: FILE * pipe = popen("gnuplot", "w"); fprintf(pipe, "set multiplot\n"); fflush(pipe); (this pipe stays open until the... (0 Replies)
Discussion started by: sedavidw
0 Replies

6. UNIX and Linux Applications

GNUplot

Hi, I am trying to make a plot of an ASCII file using GNUplot, but I keep getting error msg: for example plot filename.txt It says that (.txt ) is not identified ... I tried to write it without the .txt part, but I also get the error msg. Any idea why? :confused: (1 Reply)
Discussion started by: cosmologist
1 Replies

7. AIX

Sarcheck - gnuplot 3.7.1

Good Afternoon, I'm having an issue finding the correct libX11.a fileset on my 595 running AIX 5.3.0.0. Currently I'm trying to instal Sarcheck on my nim master. The problem occurs during the GNUPLOT installation. error: failed dependencies: libX11.a(shr4.o) is needed by gnuplot-3.7.1-1... (3 Replies)
Discussion started by: vincent1117
3 Replies

8. UNIX and Linux Applications

gnuplot + 3-d grids

When designing a 3-d graph in gnuplot, is it possible to create a 3-d grid that goes through each point on the graph ? (0 Replies)
Discussion started by: JamesGoh
0 Replies

9. UNIX for Dummies Questions & Answers

Help with gnuplot

Hi, I am a beginner using UNIX, and was wondering how to use gnuplot from UNIX on my pc. I am connected remotely to my work's UNIX server using Secure Shell Client, and gnuplot won't open a new window when I use the plot command. How do I do this? Moreover, is it possible to save things from the... (0 Replies)
Discussion started by: KTTFB64
0 Replies

Featured Tech Videos