gnuplot のパイプ渡しプロットについて

p “< command”
とするとcommandがpopenを使ってsh -cに渡されるようで(gnuplot/src/datafile.c),その出力をデータファイルとして使うことができます.

複数ファイルを加工したいときは,zshやbashの逆リダイレクトみたいな機能”<(command)"を使えると便利ですが,shだと解釈してくれません.

ので,p “< bash -c \"paste <(command) <(command)\""などとして使うとよいです.

クオートについては,シングルクオートはエスケープしなくてよいのが便利ですが,シングルクオート中でシングルクオートが使えないのが欠点です.一度クオートを閉じてから,シングルクオートマークを書き出す方法が良くない場合には,ダブルクオートを使うことになります.ダブルクオートは中身を解釈してくれるので,エスケープすればダブルクオート中でダブルクオートを使えます.

上述commandがawkだと,命令をクオートで閉じることになりますから,クオートのネストが3重になります.$1などの$もawkに渡る前に解釈されないように,外側のダブルクオートの数だけ\を直前においてエスケープする必要があります.

なお,/bin/shのリンクを貼りなおせばこのようなことをする必要はありませんが,その際には,shがshであると期待して作成してあるスクリプトファイルが正常に動作しなくなるおそれがあります.例えば,apt-get installなどしたときにpostprocess scriptでエラーがでたりします.

 

Amazonで最大1500ポイントがもらえる無料体験 [12/12まで]

現在Amazonでaudible(オーディブル)の無料体験キャンペーンが行われており、プライム会員なら最大3000ポイント、会員でない方でも最大1500ポイントがもらえます。

「花火」などの小説や、英語教材などから好きなものを選んで聴くだけですので、チェックしてみてはいかがでしょうか。

 

 こんな記事も読まれています

コメントを残す