2013-10-10 16 views
5

gnuplot consente la sostituzione del processo di bash?gnuplot e sostituzione processo di bash

In gnuplot che posso fare:

plot "<join tmp1 tmp2" u 2:3 

Ma io non posso arrivare a questo lavoro:

plot "<join tmp1 <(join tmp2 tmp3)" u 2:3 

dovrebbe funzionare, o non è la sostituzione di processo bash supportato in gnuplot?

Qui ci sono i file di input 3 Esempio:

gatto tmp1

A 1 
B 2 
C 3 

gatto tmp2

B 3 
C 
D 6 

gatto TMP3

A 4 
B 6 
C 8 
D 10 
E 12 
+1

considerare l'utilizzo di named pipe, invece. – devnull

risposta

5

Il seguente comando la < è eseguito con popen(), che utilizza /bin/sh (vedere man popen). Quindi, è necessario richiamare bash esplicitamente al fine di usufruire della sostituzione di processo:

plot '< exec bash -c "join tmp1 <(join tmp2 tmp3)"' using 2:3 

Nel tuo caso con la singola sostituzione il seguente sarebbe anche fare:

plot '< join tmp2 tmp3 | join tmp1 -' using 2:3 
+0

mi insegni molto su gnuplot. Grazie! Cosa hai letto per diventare un esperto di gnuplot? Voglio leggere la stessa cosa. Oh, e grazie per avermi ricordato di unirti: quando FILE1 o FILE2 (non entrambi) è -, leggi lo standard input. –

+0

@ tommy.carstensen Ho letto il codice, ma non è il miglior manuale utente ':)'. Ho trovato molte domande pubblicate su SO molto utili per testare, riportare bug, pensare a miglioramenti e imparare su diversi tipi di grafici. – Christoph

+1

Il 'exec' fa qualcosa di utile qui? –

Problemi correlati