mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
July 27, 2021: As per IEEE Std 1003.1-2008, -F "str" is now consistent with -v FS="str" when str is null. Thanks to Warner Losh. July 24, 2021: Fix readrec's definition of a record. This fixes an issue with NetBSD's RS regular expression support that can cause an infinite read loop. Thanks to Miguel Pineiro Jr. Fix regular expression RS ^-anchoring. RS ^-anchoring needs to know if it is reading the first record of a file. This change restores a missing line that was overlooked when porting NetBSD's RS regex functionality. Thanks to Miguel Pineiro Jr. Fix size computation in replace_repeat() for special case REPEAT_WITH_Q. Thanks to Todd C. Miller. Also, included the tests from upstream, though they aren't yet connected to the tree. Sponsored by: Netflix
33 lines
795 B
Text
33 lines
795 B
Text
# table - simple table formatter
|
|
|
|
BEGIN {
|
|
FS = "\t"; blanks = sprintf("%100s", " ")
|
|
number = "^[+-]?([0-9]+[.]?[0-9]*|[.][0-9]+)$"
|
|
}
|
|
|
|
{ row[NR] = $0
|
|
for (i = 1; i <= NF; i++) {
|
|
if ($i ~ number)
|
|
nwid[i] = max(nwid[i], length($i))
|
|
wid[i] = max(wid[i], length($i))
|
|
}
|
|
}
|
|
|
|
END {
|
|
for (r = 1; r <= NR; r++) {
|
|
n = split(row[r], d)
|
|
for (i = 1; i <= n; i++) {
|
|
sep = (i < n) ? " " : "\n"
|
|
if (d[i] ~ number)
|
|
printf("%" wid[i] "s%s", numjust(i,d[i]), sep)
|
|
else
|
|
printf("%-" wid[i] "s%s", d[i], sep)
|
|
}
|
|
}
|
|
}
|
|
|
|
function max(x, y) { return (x > y) ? x : y }
|
|
|
|
function numjust(n, s) { # position s in field n
|
|
return s substr(blanks, 1, int((wid[n]-nwid[n])/2))
|
|
}
|