Несколько труб для ввода Gnuplot - PullRequest
1 голос
/ 19 ноября 2010

Есть ли способ использовать несколько каналов при чтении данных с Gnuplot? Далее будут построены данные, полученные непосредственно из оператора SQL.

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;\""

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

1 Ответ

2 голосов
/ 11 января 2011

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

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.

...