gnuplot saída de um cano

2

Inspirado por esta questão Eu tentei enviar saída para o gnuplot e depois plotá-lo.

Meu canal é:

cat file.txt |
grep CU | 
perl -e 'while(<>){print +(split)[3], "\n"}' | 
gnuplot file.gp 

Onde file.gp contém o seguinte:

set terminal dumb
plot '<perl' using 1

A saída do pipe é:

-77.8333771886
-77.8333771886
-77.8333771886
-77.8333771886
-77.8333771886
-77.8333771886
-77.8333771886
-77.8333771886
-77.8333771886
-7.78333787544e+01
-7.78333787544e+01

Agora recebi este erro:

plot '<perl' using 1
               ^
"file.gp", line 3: warning: Skipping data file with no valid points

plot '<perl' using 1
                ^
"file.gp", line 3: x range is invalid

Pipar a saída em um arquivo e, em seguida, fazer o gnuplot file.gp com file.gp modificado para conter o nome do arquivo funciona conforme o esperado.

O que estou fazendo de errado aqui?

    
por fifaltra 18.12.2015 / 03:55

1 resposta

1

Minha conexão com a Internet caiu quando eu estava prestes a postar esta pergunta, então eu tive que tentar mais algumas coisas por conta própria e, eventualmente, descobri como fazê-lo. Mas desde que eu já tinha escrito a questão que sinto, eu poderia muito bem compartilhar meu conhecimento recém-descoberto. Também encorajo outras respostas que fornecem mais informações.

Minha solução foi alterar file.gp para

set terminal dumb
plot '<cat' using 1

e, em seguida, ajuste a cadeia de tubos como esta

cat file.txt |
grep CU | #I put an identifier in the file 
perl -ne 'print +(split)[3], "\n"' | #strip the identifier
cat | #this makes gnuplot accept the output from the pipe
gnuplot file.gp 
    
por 18.12.2015 / 03:55

Tags