2010-11-19 3 views
1

Есть ли способ использовать несколько каналов при чтении данных с помощью Gnuplot? Ниже перечислены данные, полученные непосредственно из инструкции SQL.Несколько труб для ввода Gnuplot

plot "< sqlite3 tomato-rstats.db \"SELECT data FROM table;\""

То, что я хотел бы, чтобы обработать эти данные, прежде чем он достигнет Gnuplot. Я знаю, что я мог бы передавать данные SQL через скрипт, выводить в файл-посредник и строить этот файл, но я бы скорее пропустил временный файл. Я представлял себе что-то вроде следующих, но это явно не правильный синтаксис.

plot "< sqlite3 tomato-rstats.db \"SELECT data FROM table;\" | process.pl"

или

plot "< process.pl < sqlite3 tomato-rstats.db \"SELECT data FROM table;\""

Возможно ли это с помощью какого-либо другого синтаксиса?

+0

Этот сайт отвечает на ваш вопрос: http://t16web.lanl.gov/Kawano/gnuplot/datafile3-e.html – Tom

ответ

2

Использование

plot "< sqlite3 tomato-rstats.db \"SELECT data FROM table;\" | process.pl" 

, как Вы предложили прекрасно работает в Gnuplot. Вы можете использовать любую комбинацию из водопроводных команд в качестве входных данных для Gnuplot, например,

plot "< cat file.txt | cut -f 5 | head -n 100" w l 

сюжетов первых 100 элементов в пятом ряде file.txt. Следует отметить, что использование этого в качестве ввода для построения графика бесполезно, поскольку эта обработка может быть выполнена из самого gnuplot, но она показывает возможности использования вашей командной строки UNIX и ее каналов для ввода предварительной обработки.

Излишне говорить, что это не работает на системах, отличных от UNIX, таких как Windows.

+0

Невероятно, я, должно быть, только что прикрепил синтаксис, когда я пробовал это раньше. Спасибо, что указали это и заставили меня попробовать еще раз. – fracai