noborus / guesswidth

Guess the width (fwf) output without delimiters in commands that output to the terminal.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

guesswidth

Go Reference Go

Overview

guesswidth guesses the column position for fixed-width formats(fwf).

The output of the ps command has no delimiters, making the values difficult to machine-readable. guesswidth guesses smarter than just space delimiters.

guesswidth is guessed based on the position of characters in the header. So having a header will give you better results.

Install command

There is also a guesswidth command.

go install github.com/noborus/guesswidth/cmd/guesswidth@latest

Guess the width output with no delimiters in the command.

$ ps
    PID TTY          TIME CMD
 302965 pts/3    00:00:12 zsh
 733211 pts/3    00:00:00 ps
 733212 pts/3    00:00:00 tee
 733213 pts/3    00:00:00 guesswidth

Split the output like this:

$ ps | guesswidth
    PID| TTY     |     TIME|CMD
 302965| pts/3   | 00:00:08|zsh
 539529| pts/3   | 00:00:00|ps
 539530| pts/3   | 00:00:00|guesswidth

It can be converted to csv.

$ ps | guesswidth csv
PID,TTY,TIME,CMD
302965,pts/3,00:00:12,zsh
733211,pts/3,00:00:00,ps
733212,pts/3,00:00:00,tee
733213,pts/3,00:00:00,guesswidth

Examples

guesswidth inserts a delimiter (| by default) (Colors are changed here for clarity).

Even if there are spaces in the header or body, they will be separated correctly.

ps

ps

docker ps

docker-ps

docker node

docker node ls

About

Guess the width (fwf) output without delimiters in commands that output to the terminal.

License:MIT License


Languages

Language:Go 97.0%Language:Makefile 3.0%