سؤال

هل هناك طريقة لاستخدام أنابيب متعددة عند قراءة البيانات باستخدام Gnuplot؟ سوف يلي سوف يرسم البيانات المستلمة مباشرة من بيان SQL.

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

ما أحب هو معالجة هذه البيانات قبل أن تصل إلى Gnuplot. أعلم أنه يمكنني تنشيط بيانات SQL من خلال البرنامج النصي ، والإخراج إلى ملف وسيط ، ورسم هذا الملف ، لكنني أفضل تخطي ملف temp. تخيلت شيئًا على غرار ما يلي ، لكن من الواضح أنه ليس بناء الجملة الصحيح.

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

أو

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

هل هذا ممكن من خلال بعض بناء الجملة الأخرى؟

هل كانت مفيدة؟

المحلول

استخدام

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 الخاص بك وأنابيبه لإدخال المعالجة المسبقة.

وغني عن القول ، هذا لا يعمل على أنظمة غير يونيكس ، مثل Windows.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top