2013-10-10 49 views
5

gnuplot允許bash進程替換嗎?gnuplot和bash進程替換

在gnuplot的我可以這樣做:

plot "<join tmp1 tmp2" u 2:3 

但我不能得到這個工作:

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

如果它工作,或者是不支持的gnuplot bash進程替換嗎?

這裏有3示例輸入文件:

貓TMP1

A 1 
B 2 
C 3 

貓TMP2

B 3 
C 
D 6 

貓TMP3

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

考慮使用命名管道來代替。 – devnull

回答

5

命令之後的<是用popen()執行,其使用/bin/sh(參見man popen)。所以,你必須先明確地調用bash,使使用過程替代:

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

在你的情況跟單替換下面也做:

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

你教給我很多關於gnuplot的知識。謝謝!你讀過什麼成爲這樣一位gnuplot專家?我想讀同樣的東西。哦,謝謝你提醒我加入:當FILE1或FILE2(不是兩個)都是 - 時,讀取標準輸入。 –

+0

@ tommy.carstensen我讀了代碼,但它不是最好的用戶手冊':)'。我在SO上發現了許多問題,對測試非常有幫助,報告錯誤,思考增強功能以​​及瞭解不同圖表類型。 – Christoph

+1

'exec'在這裏有用嗎? –