インスピレーション この質問 出力をgnuplotにパイプして、プロットしようとしました。
私のパイプは:
cat file.txt |
grep CU |
Perl -e 'while(<>){print +(split)[3], "\n"}' |
gnuplot file.gp
File.gpには次のものが含まれています。
set terminal dumb
plot '<Perl' using 1
パイプの出力は次のとおりです。
-77.8333771886
-77.8333771886
-77.8333771886
-77.8333771886
-77.8333771886
-77.8333771886
-77.8333771886
-77.8333771886
-77.8333771886
-7.78333787544e+01
-7.78333787544e+01
今、私はこのエラーを受け取りました:
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
出力をファイルにパイピングしてからgnuplot file.gp
とfile.gp
ファイル名を含むように変更すると期待どおりに機能します。
私はここで何が間違っているのですか?
この質問を投稿しようとしたときにインターネット接続がダウンしたので、自分でさらにいくつかのことを試して、最終的にそれを行う方法を見つけなければなりませんでした。しかし、私はすでに質問を書いていたので、新しく見つけた知識を共有したほうがいいと思います。また、より多くの洞察を提供する他の回答をお勧めします。
私の解決策は、file.gp
をに変更することでした
set terminal dumb
plot '<cat' using 1
パイプチェーンをこのように調整します
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