Fun with terminal plotting JSON data at the command line
One of the great thing about unix is the ability to pipe multiple programs together to manipulate data. Plain, unstructured text is the most common type of data that is passed between programs, but these days JSON is becoming more popular.
I thought it would be fun to pipe together some command line JSON tools to do some stupid terminal tricks, like plotting a graph of system statistics, like CPU or memory utilization.
We can use jc (disclosure: I wrote jc), jq, and jp to pull the output of uptime and display a line graph like this:
In this post I'll show you how you can build a quick bar graph of the CPU utilization of the top processes right in the terminal. For more information on how to create the animated line graph above, see my blog post at blog.kellybrazil.com.
first, get jc, jq, and jp.
Then you can use this one-liner to graph the output of ps:
Fun stuff! jq is an awesome JSON tool for the cli and is a bit like sed or awk for JSON. You'll find lots of uses for manipulating JSON as more and more programs start to output in the format.
Last edited by kbrazil; 01-16-2020 at 04:39 PM..
These 2 Users Gave Thanks to kbrazil For This Post:
Hai Friends
I have installed FreeBSD in my system... I have installed it to work in text mode don't have the GUI. The default text color is Black background with White Foreground. I want it to be with Black background with Green Foreground. How could i do that.
Thanks in advance
Collins (4 Replies)
I have a simple gnuplot question. I have a set of points (list of x,y,z values; irregularly spaced, i.e. no grid) that I want to plot. I want the plot to look like this:
- map view (no 3D view)
- color of each point should depend on z-value.
- I want to define my own color scale
- plot should... (1 Reply)
I have a set of data that looks similar to the following in UNIX:
0.12_0.008_fall_ff.out:bisect return: 0.08056640625
0.12_0.04_fall_ff.out:bisect return: 0.07470703125
0.12_0.12_fall_ff.out:bisect return: 0.06298828125
0.12_0.24_fall_ff.out:bisect return: 0.05126953125
Previously I have... (4 Replies)
I have attached a txt file, what I would like to be able to do is:
1. Extract Data from Columns labeled E/N and Ko into a new file
2. Then in the new file I would like to be able to plot E/N on the X axis and Ko on the y axis.
3. Lastly I would like to be able to extract multiple data sets and... (6 Replies)
Hello,
I am trying to learn how to pass something more than a one-command startup for gnome-terminal.
I will give an example of what I'm trying to do here:
#! /bin/bash
#
#TODO write this for gnome and xterm
USAGE="
______________________________________________
${0##*/}
run... (0 Replies)
Hi All,
I work on a Linux platform which runs Red Hat (forget which version) and use both korn and bash shells. Is there a way of making the command line appear at the top of the terminal window and any lists, commands or directory names etc to appear below the top, that is to say reverse the... (1 Reply)
Dear All,
Anyone knows how to start a new bash terminal from command line?
Another question: when I use "open" command (open test.pdf) to open a pdf file, the PDF reader will start up, but cannot associate with that file. Anyone knows why? (1 Reply)
Hi guys and gals...
After much searching on the good ol' internet I could find nothing, so this is the result.
ALthough many people seem to have asked this question no-one seems to have a solution so here we go.
I need for AudioScope.sh, 'xterm' to run a second program for some of its... (2 Replies)
Hi Gurus,
I have below JSON file, now I want to rewrite this file into a new file.
I will appreciate if anyone can help me to provide the solution...I can't use jq.
{
"_id": "3ad893cb4cf1560add7b4caffd4b6126",
"_rev": "1-1f0ce165e1d210319cf6e9f9c6ff654f",
"name":... (4 Replies)
Discussion started by: manas_ranjan
4 Replies
LEARN ABOUT DEBIAN
blaze-add
BLAZE-ADD(1) BlazeBlogger Documentation BLAZE-ADD(1)NAME
blaze-add - adds a blog post or a page to the BlazeBlogger repository
SYNOPSIS
blaze-add [-pqCPV] [-b directory] [-E editor] [-a author] [-d date] [-t title] [-k keywords] [-T tags] [-u url] [file...]
blaze-add -h|-v
DESCRIPTION
blaze-add adds a blog post or a page to the BlazeBlogger repository. If a file is supplied, it adds the content of that file, otherwise an
external text editor is opened for you. Note that there are several special forms and placeholders that can be used in the text, and that
will be replaced with a proper data when the blog is generated.
Special Forms
<!-- break -->
A mark to delimit a blog post synopsis.
Placeholders
%root%
A relative path to the root directory of the blog.
%home%
A relative path to the index page of the blog.
%page[id]%
A relative path to a page with the supplied id.
%post[id]%
A relative path to a blog post with the supplied id.
%tag[name]%
A relative path to a tag with the supplied name.
OPTIONS -b directory, --blogdir directory
Allows you to specify a directory in which the BlazeBlogger repository is placed. The default option is a current working directory.
-E editor, --editor editor
Allows you to specify an external text editor. When supplied, this option overrides the relevant configuration option.
-t title, --title title
Allows you to specify the title of a blog post or page.
-a author, --author author
Allows you to specify the author of a blog post or page.
-d date, --date date
Allows you to specify the date of publishing of a blog post or page.
-k keywords, --keywords keywords
Allows you to specify a comma-separated list of keywords attached to a blog post or page.
-T tags, --tags tags
Allows you to supply a comma-separated list of tags attached to a blog post.
-u url, --url url
Allows you to specify the url of a blog post or page. Allowed characters are letters, numbers, hyphens, and underscores.
-p, --page, --pages
Tells blaze-add to add a page or pages.
-P, --post, --posts
Tells blaze-add to add a blog post or blog posts. This is the default option.
-C, --no-processor
Disables processing a blog post or page with an external application. For example, if you use Markdown to convert the lightweight
markup language to the valid HTML output, this will enable you to write this particular post in plain HTML directly.
-q, --quiet
Disables displaying of unnecessary messages.
-V, --verbose
Enables displaying of all messages. This is the default option.
-h, --help
Displays usage information and exits.
-v, --version
Displays version information and exits.
ENVIRONMENT
EDITOR
Unless the core.editor option is set, BlazeBlogger tries to use system-wide settings to decide which editor to use.
EXAMPLE USAGE
Write a new blog post in an external text editor:
~]$ blaze-add
Add a new blog post from a file:
~]$ blaze-add new_packages.txt
Successfully added the post with ID 10.
Write a new page in an external text editor:
~]$ blaze-add -p
Write a new page in nano:
~]$ blaze-add -p -E nano
SEE ALSO blaze-init(1), blaze-config(1), blaze-edit(1), blaze-remove(1), blaze-make(1)BUGS
To report a bug or to send a patch, please, add a new issue to the bug tracker at <http://code.google.com/p/blazeblogger/issues/>, or visit
the discussion group at <http://groups.google.com/group/blazeblogger/>.
COPYRIGHT
Copyright (C) 2008-2011 Jaromir Hradilek
This program is free software; see the source for copying conditions. It is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Version 1.2.0 2012-03-05 BLAZE-ADD(1)