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 MOJAVE
json_write
json::write(n) JSON json::write(n)
__________________________________________________________________________________________________________________________________________________NAME
json::write - JSON generation
SYNOPSIS
package require Tcl 8.5
package require json::write ?1?
::json::write indented
::json::write indented flag
::json::write aligned
::json::write aligned flag
::json::write string s
::json::write array arg...
::json::write object key value...
_________________________________________________________________DESCRIPTION
The json::write package provides a simple Tcl-only library for generation of text in the JSON http://www.json.org/ data exchange format as
specified in RFC 4627 http://www.ietf.org/rfc/rfc4627.txt.
COMMANDS
::json::write indented
This method returns the current state of the indentation setting.
::json::write indented flag
This and the method aligned configure the layout of the JSON generated by the package.
If this flag is set (default) the package will break the generated JSON code across lines and indent it according to its inner
structure, with each key of an object on a separate line.
If this flag is not set, the whole JSON object will be written on a single line, with minimum spacing between all elements.
::json::write aligned
This method returns the current state of the alignment setting.
::json::write aligned flag
This and the method indented configure the layout of the JSON generated by the package.
If this flag is set (default) the package ensures that the values for the keys in an object are vertically aligned with each other,
for a nice table effect. To make this work this also implies that indented is set as well.
If this flag is not set, the output is formatted as per the value of indented, without trying to align the values for object keys.
::json::write string s
This method takes the string s and returns it properly quoted for JSON as its result.
::json::write array arg...
This method takes a series of JSON formatted arguments and returns them as a properly formatted JSON array as its result.
::json::write object key value...
This method takes a series of key/value arguments, the values already formatted for JSON, and returns them as a properly formatted
JSON object as its result, with the keys formatted as JSON strings.
BUGS, IDEAS, FEEDBACK
This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such in the category json of
the Tcllib SF Trackers [http://sourceforge.net/tracker/?group_id=12883]. Please also report any ideas for enhancements you may have for
either package and/or documentation.
KEYWORDS
data exchange, exchange format, javascript, json
CATEGORY
CGI programming
COPYRIGHT
Copyright (c) 2009 Andreas Kupries <andreas_kupries@sourceforge.net>
json 1.0 json::write(n)