table of contents
VNL-SORT(1) | vnlog | VNL-SORT(1) |
NAME¶
vnl-sort - sorts an vnlog file, preserving the legendSYNOPSIS¶
$ cat a.vnl # a b AA 11 bb 12 CC 13 dd 14 dd 123 Sort lexically by a: $ <a.vnl vnl-sort -k a # a b AA 11 CC 13 bb 12 dd 123 dd 14 Sort lexically by a, ignoring case: $ <a.vnl vnl-sort -k a --ignore-case # a b AA 11 bb 12 CC 13 dd 123 dd 14 Sort lexically by a, then numerically by b: $ <a.vnl vnl-sort -k a -k b.n # a b AA 11 CC 13 bb 12 dd 14 dd 123 Sort lexically by a, then numerically by b in reverse: $ <a.vnl vnl-sort -k a -k b.nr # a b AA 11 CC 13 bb 12 dd 123 dd 14 Sort by month and then day: $ cat dat.vnl # month day March 5 Jan 2 Feb 1 March 30 Jan 21 $ <dat.vnl vnl-sort -k month.M -k day.n # month day Jan 2 Jan 21 Feb 1 March 5 March 30
DESCRIPTION¶
Usage: vnl-sort [options] logfile logfile logfile ... < logfile
This tool sorts given vnlog files in various ways. "vnl-sort" is a wrapper around the GNU coreutils "sort" tool. Since this is a wrapper, most commandline options and behaviors of the "sort" tool are present; consult the sort(1) manpage for detail. The differences from GNU coreutils "sort" are
- The input and output to this tool are vnlog files, complete with a legend
- The columns are referenced by name, not index. So instead of saying
sort -k1
to sort by the first column, you say
sort -k time
to sort by column "time".
- The fancy "KEYDEF" spec from
"sort" is only partially supported. I
only allow us to sort by full fields, so the start/stop positions
don't make sense. I do support the
"OPTS" to change the type of sorting in
a given particular column. For instance, to sort by month and then by day,
do this (see example above):
vnl-sort -k month.M -k day.n
- "--files0-from" is not supported due to lack of time. If somebody really needs it, talk to me.
- "--output" is not supported due to an uninteresting technical limitation. The output always goes to standard out.
- "--field-separator" is not supported because vnlog assumes whitespace-separated fields
- "--zero-terminated" is not supported because vnlog assumes newline-separated records
Past that, everything "sort" does is supported, so see that man page for detailed documentation. Note that all non-legend comments are stripped out, since it's not obvious where they should end up.
BUGS¶
This and the other "vnl-xxx" tools that wrap coreutils are written specifically to work with the Linux kernel and the GNU coreutils. None of these have been tested with BSD tools or with non-Linux kernels, and I'm sure things don't just work. It's probably not too effortful to get that running, but somebody needs to at least bug me for that. Or better yet, send me nice patches :)SEE ALSO¶
sort(1)REPOSITORY¶
https://github.com/dkogan/vnlog/AUTHOR¶
Dima Kogan "<dima@secretsauce.net>"LICENSE AND COPYRIGHT¶
Copyright 2018 Dima Kogan "<dima@secretsauce.net>"This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
2019-01-22 |