scripts

My personal collection of scripts
git clone git://src.gearsix.net/scripts
Log | Files | Refs | Atom | README | LICENSE

commit d86802e864b39342cdecab6f0a22d2086ea4b9fe
parent 139a939b56d59c34b315439ecb038ba71ad28baf
Author: gearsix <gearsix@tuta.io>
Date:   Fri, 29 Mar 2024 15:12:54 +0000

added awkcol

Diffstat:
MREADME.md | 1+
Asrc/posix/awkcol.sh | 24++++++++++++++++++++++++
2 files changed, 25 insertions(+), 0 deletions(-)

diff --git a/README.md b/README.md @@ -101,6 +101,7 @@ Scripts related to string parsing/manipulation - *pomodoro* - a [pomodoro](https://en.wikipedia.org/wiki/Pomodoro_Technique) timer. - *while-true* - clear the terminal, run $1 sleep ($2 || 1 sec), repeat forever (Ctrl+C to cancel). - *onfilech* - stat a file ($1) every 10 seconds, if the output changes, run a command ($2...$n). +- *awkcol* - column with awk (at one point column wasn't available but awk was) **depreciated** diff --git a/src/posix/awkcol.sh b/src/posix/awkcol.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env sh +# columnate with awk +# description: sometimes you reach the limit of 'column' +# dependencies: awk +# e.g.$ mount | awkcol +# source: http://awk.freeshell.org/Columnate +awk '{ + line[NR] = $0 # saves the line + for (f=1; f<=NF; f++) { + len = length($f) + if (len>max[f]) + max[f] = len # an array of maximum field widths + } +} + +END { + for(nr=1; nr<=NR; nr++) { + nf = split(line[nr], fields) + for (f=1; f<nf; f++) + printf "%-*s", max[f]+2, fields[f] + print fields[f] # the last field need not be padded + } +}' +