[Cialug] Columns of Data
Jeffrey Ollie
jeff at ocjtech.us
Fri Jul 31 21:37:18 UTC 2020
For the specific case of kubectl, yes, yes it can output JSON. Just add
'-o=json' to the command line.
https://kubernetes.io/docs/reference/kubectl/cheatsheet/#formatting-output
It is definitely worth looking into any CLI command to see if it can output
it's data in a machine-readable format rather than human-readable output
that many commands produce. There are a lot of CLI commands that will do
that, because you're probably not the first one to ask for such a thing.
On Fri, Jul 31, 2020 at 12:04 PM Barry Von Ahsen <vonahsen at gmail.com> wrote:
> Not a sed/cut/awk option, but does it have a JSON output option you could
> dump into jq?
>
>
> -barry
>
>
>
>
> On 7/31/20, 10:18 AM, "Cialug on behalf of Todd Walton" <
> cialug-bounces at cialug.org on behalf of tdwalton at gmail.com> wrote:
>
> Happy SysAdmin Day, everyone!
>
> Here is an example bit of text coughed up by a Kubernetes command-line
> tool:
>
> 9m49s Normal Updated
> machine/oo-r6sr3-worker-us-east-1d-nvfzh Updated machine
> oo-r6sr3-worker-us-east-1d-nvfzh
> 9m47s Normal Updated machine/oo-r6sr3-master-1
> Updated machine oo-r6sr3-master-1
> 9m46s Normal Updated
> machine/oo-r6sr3-worker-us-east-1b-hsmsx Updated machine
> oo-r6sr3-worker-us-east-1b-hsmsx
> 9m46s Normal Updated
> machine/oo-r6sr3-worker-us-east-1a-wk5cs Updated machine
> oo-r6sr3-worker-us-east-1a-wk5cs
> 9m46s Normal Updated
> machine/oo-r6sr3-worker-us-east-1e-z9xlb Updated machine
> oo-r6sr3-worker-us-east-1e-z9xlb
> 9m44s Normal Updated machine/oo-r6sr3-master-0
> Updated machine oo-r6sr3-master-0
> 9m43s Normal Updated machine/oo-r6sr3-master-2
> Updated machine oo-r6sr3-master-2
> 9m43s Normal Updated
> machine/oo-r6sr3-worker-us-east-1d-tfg6x Updated machine
> oo-r6sr3-worker-us-east-1d-tfg6x
> 9m43s Normal Updated
> machine/oo-r6sr3-worker-us-east-1c-6l42j Updated machine
> oo-r6sr3-worker-us-east-1c-6l42j
> 59s Normal SuccessfulUpdate clusterautoscaler/default
> Updated ClusterAutoscaler deployment:
> machine-api/cluster-autoscaler-default
> 4m7s Normal Pulled
> pod/gateway-laravel-schedule-1296080-h43n6 Container image
> "dockerregistry:4567/group/gateway/master:alpine-nodejs-fpm" already
> present on machine
>
> For the purpose of this email, don't mind about the semantics. This
> could
> be anything. But do notice that the output is arranged into neat
> columns.
> The first four columns are strings of non-space characters. The fifth
> column, however, gives us trouble. It seeks to undermine the movement
> from
> within, throwing a wrench into the works. Fifth columns, amiright?
>
> Here's another example, this one taken from my /var/log/messages:
>
> Jun 28 02:50:42 ilm01-ll-ttwalto NetworkManager[2238]: <info> device
> (wlp1s0): set-hw-addr: set MAC address to 9:7:8:9:2:F (scanning)
> Jun 28 02:50:42 ilm01-ll-ttwalto kernel: IPv6: ADDRCONF(NETDEV_UP):
> wlp1s0:
> link is not ready
> Jun 28 02:50:42 ilm01-ll-ttwalto NetworkManager[2238]: <info> device
> (wlp1s0): supplicant interface state: inactive -> disabled
> Jun 28 02:50:42 ilm01-ll-ttwalto NetworkManager[2238]: <info> device
> (wlp1s0): supplicant interface state: disabled -> inactive
> Jun 28 02:55:57 ilm01-ll-ttwalto NetworkManager[2238]: <info> device
> (wlp1s0): set-hw-addr: set MAC address to 62:0F:6E:7A:B3:2C (scanning)
> Jun 28 02:55:57 ilm01-ll-ttwalto kernel: IPv6: ADDRCONF(NETDEV_UP):
> wlp1s0:
> link is not ready
> Jun 28 02:55:57 ilm01-ll-ttwalto NetworkManager[2238]: <info> device
> (wlp1s0): supplicant interface state: inactive -> disabled
>
> Here again the fifth column is making things difficult. Also the first
> three could certainly stand to be one column, but at least they're
> standard, predictable, and manipulable. Manipulable being what I'm
> looking
> for.
>
> This happens frequently, where a command or log outputs text in columns
> that are not quite usefully arranged. How does one deal with columnar
> data
> like this? I can't use 'cut'. What would I cut on that would capture
> the
> first columns *and* keep the last one intact? I'm not sure how one
> would
> easily use awk for this. Is there something like '{ print $5- }'?
> Meaning,
> from column 5 onwards? I can't use "column -t" because that screws
> everything up royally.
>
> Another thing that trips me up. Sometimes I'll have a nice set of
> comma-separated values but there'll be a comma in one of the fields.
> The
> typical way of dealing with this in CSV files is to quote the entire
> field.
> But that doesn't help me, the bash scripter.
>
> Any suggestions for how to deal with stuff like this?
>
> --
> Todd
> _______________________________________________
> Cialug mailing list
> Cialug at cialug.org
> https://www.cialug.org/cgi-bin/mailman/listinfo/cialug
> _______________________________________________
> Cialug mailing list
> Cialug at cialug.org
> https://www.cialug.org/cgi-bin/mailman/listinfo/cialug
>
--
Jeff Ollie
The majestik møøse is one of the mäni interesting furry animals in Sweden.
More information about the Cialug
mailing list