mirror of
https://codeberg.org/scip/tablizer.git
synced 2025-12-19 05:21:03 +01:00
Compare commits
15 Commits
v1.0.12
...
issue-temp
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ca71f8a572 | ||
| 315e8d5363 | |||
| 88d078a535 | |||
| 74ab3a1804 | |||
| 2d8614fa0f | |||
| c8bad4df1a | |||
| 335b2665f2 | |||
| 8552270a68 | |||
| 6f49b76607 | |||
| 4653eaca09 | |||
| 722eea7e7b | |||
| 304f2182ac | |||
| 73908b1661 | |||
| 105ba96757 | |||
| 0681f67bc6 |
31
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
31
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
---
|
||||||
|
name: Bug report
|
||||||
|
about: Create a report to help us improve
|
||||||
|
title: "[bug-report]"
|
||||||
|
labels: bug
|
||||||
|
assignees: TLINDEN
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Describtion**
|
||||||
|
<!-- Please provide a clear and concise description of the issue: -->
|
||||||
|
|
||||||
|
|
||||||
|
**Steps To Reproduce**
|
||||||
|
<!-- Please detail the steps to reproduce the behavior: -->
|
||||||
|
|
||||||
|
|
||||||
|
**Expected behavior**
|
||||||
|
<!-- What do you expected to happen instead? -->
|
||||||
|
|
||||||
|
|
||||||
|
**Version information**
|
||||||
|
<!--
|
||||||
|
Please provide as much version information as possible:
|
||||||
|
- if you have just installed a binary, provide the output of: tablizer --version
|
||||||
|
- if you installed from source, provide the output of: make show-version
|
||||||
|
- provide additional details: operating system and version and shell environment
|
||||||
|
-->
|
||||||
|
|
||||||
|
|
||||||
|
**Additional informations**
|
||||||
19
CHANGELOG.md
19
CHANGELOG.md
@@ -4,6 +4,25 @@ All notable changes to this project will be documented in this file.
|
|||||||
|
|
||||||
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org).
|
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org).
|
||||||
|
|
||||||
|
## [v1.0.12](https://github.com/TLINDEN/tablizer/tree/v1.0.13) - 2022-11-03
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/TLINDEN/tablizer/compare/v1.0.12...v1.0.13)
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Added command line flag to generate shell completion code
|
||||||
|
|
||||||
|
- Added an animated demo gif to the README to demonstrate the tool
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- The `-A` flag wasn't implemented (default output mode).
|
||||||
|
|
||||||
|
- Fixed building from source on systems w/o perls pod tools,
|
||||||
|
which is not requrired anyway since I always commit the latest
|
||||||
|
manpage.
|
||||||
|
|
||||||
|
|
||||||
## [v1.0.12](https://github.com/TLINDEN/tablizer/tree/v1.0.12) - 2022-10-25
|
## [v1.0.12](https://github.com/TLINDEN/tablizer/tree/v1.0.12) - 2022-10-25
|
||||||
|
|
||||||
[Full Changelog](https://github.com/TLINDEN/tablizer/compare/v1.0.11...v1.0.12)
|
[Full Changelog](https://github.com/TLINDEN/tablizer/compare/v1.0.11...v1.0.12)
|
||||||
|
|||||||
26
Makefile
26
Makefile
@@ -17,24 +17,27 @@
|
|||||||
|
|
||||||
#
|
#
|
||||||
# no need to modify anything below
|
# no need to modify anything below
|
||||||
tool = tablizer
|
tool = tablizer
|
||||||
version = $(shell egrep "= .v" cfg/config.go | cut -d'=' -f2 | cut -d'"' -f 2)
|
version = $(shell egrep "= .v" cfg/config.go | cut -d'=' -f2 | cut -d'"' -f 2)
|
||||||
archs = android darwin freebsd linux netbsd openbsd windows
|
archs = android darwin freebsd linux netbsd openbsd windows
|
||||||
PREFIX = /usr/local
|
PREFIX = /usr/local
|
||||||
UID = root
|
UID = root
|
||||||
GID = 0
|
GID = 0
|
||||||
BRANCH = $(shell git branch --show-current)
|
BRANCH = $(shell git branch --show-current)
|
||||||
COMMIT = $(shell git rev-parse --short=8 HEAD)
|
COMMIT = $(shell git rev-parse --short=8 HEAD)
|
||||||
BUILD = $(shell date +%Y.%m.%d.%H%M%S)
|
BUILD = $(shell date +%Y.%m.%d.%H%M%S)
|
||||||
VERSION:= $(if $(filter $(BRANCH), development),$(version)-$(BRANCH)-$(COMMIT)-$(BUILD),$(version))
|
VERSION := $(if $(filter $(BRANCH), development),$(version)-$(BRANCH)-$(COMMIT)-$(BUILD),$(version))
|
||||||
|
HAVE_POD := $(shell pod2text -h 2>/dev/null)
|
||||||
|
|
||||||
all: $(tool).1 cmd/$(tool).go buildlocal
|
all: $(tool).1 cmd/$(tool).go buildlocal
|
||||||
|
|
||||||
%.1: %.pod
|
%.1: %.pod
|
||||||
|
ifdef HAVE_POD
|
||||||
pod2man -c "User Commands" -r 1 -s 1 $*.pod > $*.1
|
pod2man -c "User Commands" -r 1 -s 1 $*.pod > $*.1
|
||||||
|
endif
|
||||||
|
|
||||||
cmd/%.go: %.pod
|
cmd/%.go: %.pod
|
||||||
|
ifdef HAVE_POD
|
||||||
echo "package cmd" > cmd/$*.go
|
echo "package cmd" > cmd/$*.go
|
||||||
echo >> cmd/$*.go
|
echo >> cmd/$*.go
|
||||||
echo "var manpage = \`" >> cmd/$*.go
|
echo "var manpage = \`" >> cmd/$*.go
|
||||||
@@ -44,6 +47,7 @@ cmd/%.go: %.pod
|
|||||||
echo "var usage = \`" >> cmd/$*.go
|
echo "var usage = \`" >> cmd/$*.go
|
||||||
awk '/SYNOPS/{f=1;next} /DESCR/{f=0} f' $*.pod | sed 's/^ //' >> cmd/$*.go
|
awk '/SYNOPS/{f=1;next} /DESCR/{f=0} f' $*.pod | sed 's/^ //' >> cmd/$*.go
|
||||||
echo "\`" >> cmd/$*.go
|
echo "\`" >> cmd/$*.go
|
||||||
|
endif
|
||||||
|
|
||||||
buildlocal:
|
buildlocal:
|
||||||
go build -ldflags "-X 'github.com/tlinden/tablizer/cfg.VERSION=$(VERSION)'"
|
go build -ldflags "-X 'github.com/tlinden/tablizer/cfg.VERSION=$(VERSION)'"
|
||||||
|
|||||||
@@ -72,11 +72,15 @@ repldepl-7bcd8d5b64-q2bf4 1/1 Running 1 (69m ago) 5h26m
|
|||||||
|
|
||||||
There are more output modes like org-mode (orgtbl) and markdown.
|
There are more output modes like org-mode (orgtbl) and markdown.
|
||||||
|
|
||||||
|
## Demo
|
||||||
|
|
||||||
|
[](https://asciinema.org/a/9FKc3HPnlg8D2X8otheleEa9t)
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
There are multiple ways to install **tablizer**:
|
There are multiple ways to install **tablizer**:
|
||||||
|
|
||||||
- Go to the [latest release page](https://github.com/muesli/mango/releases/latest),
|
- Go to the [latest release page](https://github.com/tlinden/tablizer/releases/latest),
|
||||||
locate the binary for your operating system and platform.
|
locate the binary for your operating system and platform.
|
||||||
|
|
||||||
Download it and put it into some directory within your `$PATH` variable.
|
Download it and put it into some directory within your `$PATH` variable.
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const DefaultSeparator string = `(\s\s+|\t)`
|
const DefaultSeparator string = `(\s\s+|\t)`
|
||||||
const Version string = "v1.0.12"
|
const Version string = "v1.0.13"
|
||||||
|
|
||||||
var VERSION string // maintained by -x
|
var VERSION string // maintained by -x
|
||||||
|
|
||||||
|
|||||||
33
cmd/root.go
33
cmd/root.go
@@ -18,6 +18,7 @@ package cmd
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
"github.com/tlinden/tablizer/cfg"
|
"github.com/tlinden/tablizer/cfg"
|
||||||
@@ -45,13 +46,29 @@ func man() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func completion(cmd *cobra.Command, mode string) error {
|
||||||
|
switch mode {
|
||||||
|
case "bash":
|
||||||
|
return cmd.Root().GenBashCompletion(os.Stdout)
|
||||||
|
case "zsh":
|
||||||
|
return cmd.Root().GenZshCompletion(os.Stdout)
|
||||||
|
case "fish":
|
||||||
|
return cmd.Root().GenFishCompletion(os.Stdout, true)
|
||||||
|
case "powershell":
|
||||||
|
return cmd.Root().GenPowerShellCompletionWithDesc(os.Stdout)
|
||||||
|
default:
|
||||||
|
return errors.New("Invalid shell parameter! Valid ones: bash|zsh|fish|powershell")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func Execute() {
|
func Execute() {
|
||||||
var (
|
var (
|
||||||
conf cfg.Config
|
conf cfg.Config
|
||||||
ShowManual bool
|
ShowManual bool
|
||||||
ShowVersion bool
|
ShowVersion bool
|
||||||
modeflag cfg.Modeflag
|
ShowCompletion string
|
||||||
sortmode cfg.Sortmode
|
modeflag cfg.Modeflag
|
||||||
|
sortmode cfg.Sortmode
|
||||||
)
|
)
|
||||||
|
|
||||||
var rootCmd = &cobra.Command{
|
var rootCmd = &cobra.Command{
|
||||||
@@ -69,6 +86,10 @@ func Execute() {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(ShowCompletion) > 0 {
|
||||||
|
return completion(cmd, ShowCompletion)
|
||||||
|
}
|
||||||
|
|
||||||
// Setup
|
// Setup
|
||||||
conf.CheckEnv()
|
conf.CheckEnv()
|
||||||
conf.PrepareModeFlags(modeflag)
|
conf.PrepareModeFlags(modeflag)
|
||||||
@@ -88,6 +109,7 @@ func Execute() {
|
|||||||
rootCmd.PersistentFlags().BoolVarP(&ShowVersion, "version", "V", false, "Print program version")
|
rootCmd.PersistentFlags().BoolVarP(&ShowVersion, "version", "V", false, "Print program version")
|
||||||
rootCmd.PersistentFlags().BoolVarP(&conf.InvertMatch, "invert-match", "v", false, "select non-matching rows")
|
rootCmd.PersistentFlags().BoolVarP(&conf.InvertMatch, "invert-match", "v", false, "select non-matching rows")
|
||||||
rootCmd.PersistentFlags().BoolVarP(&ShowManual, "man", "m", false, "Display manual page")
|
rootCmd.PersistentFlags().BoolVarP(&ShowManual, "man", "m", false, "Display manual page")
|
||||||
|
rootCmd.PersistentFlags().StringVarP(&ShowCompletion, "completion", "", "", "Display completion code")
|
||||||
rootCmd.PersistentFlags().StringVarP(&conf.Separator, "separator", "s", cfg.DefaultSeparator, "Custom field separator")
|
rootCmd.PersistentFlags().StringVarP(&conf.Separator, "separator", "s", cfg.DefaultSeparator, "Custom field separator")
|
||||||
rootCmd.PersistentFlags().StringVarP(&conf.Columns, "columns", "c", "", "Only show the speficied columns (separated by ,)")
|
rootCmd.PersistentFlags().StringVarP(&conf.Columns, "columns", "c", "", "Only show the speficied columns (separated by ,)")
|
||||||
|
|
||||||
@@ -108,6 +130,7 @@ func Execute() {
|
|||||||
rootCmd.PersistentFlags().BoolVarP(&modeflag.S, "shell", "S", false, "Enable shell mode output")
|
rootCmd.PersistentFlags().BoolVarP(&modeflag.S, "shell", "S", false, "Enable shell mode output")
|
||||||
rootCmd.PersistentFlags().BoolVarP(&modeflag.Y, "yaml", "Y", false, "Enable yaml output")
|
rootCmd.PersistentFlags().BoolVarP(&modeflag.Y, "yaml", "Y", false, "Enable yaml output")
|
||||||
rootCmd.PersistentFlags().BoolVarP(&modeflag.C, "csv", "C", false, "Enable CSV output")
|
rootCmd.PersistentFlags().BoolVarP(&modeflag.C, "csv", "C", false, "Enable CSV output")
|
||||||
|
rootCmd.PersistentFlags().BoolVarP(&modeflag.A, "ascii", "A", false, "Enable ASCII output (default)")
|
||||||
rootCmd.MarkFlagsMutuallyExclusive("extended", "markdown", "orgtbl", "shell", "yaml", "csv")
|
rootCmd.MarkFlagsMutuallyExclusive("extended", "markdown", "orgtbl", "shell", "yaml", "csv")
|
||||||
|
|
||||||
rootCmd.SetUsageTemplate(strings.TrimSpace(usage) + "\n")
|
rootCmd.SetUsageTemplate(strings.TrimSpace(usage) + "\n")
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ SYNOPSIS
|
|||||||
-t, --sort-time sort according to time string
|
-t, --sort-time sort according to time string
|
||||||
|
|
||||||
Other Flags:
|
Other Flags:
|
||||||
|
--completion <shell> Generate the autocompletion script for <shell>
|
||||||
-d, --debug Enable debugging
|
-d, --debug Enable debugging
|
||||||
-h, --help help for tablizer
|
-h, --help help for tablizer
|
||||||
-m, --man Display manual page
|
-m, --man Display manual page
|
||||||
@@ -199,6 +200,52 @@ DESCRIPTION
|
|||||||
<T_COLUMNS> - comma separated list of columns to output, like -c
|
<T_COLUMNS> - comma separated list of columns to output, like -c
|
||||||
<NO_COLORS> - disable colorization of matches, like -N
|
<NO_COLORS> - disable colorization of matches, like -N
|
||||||
|
|
||||||
|
COMPLETION
|
||||||
|
Shell completion for command line options can be enabled by using the
|
||||||
|
--completion flag. The required parameter is the name of your shell.
|
||||||
|
Currently supported are: bash, zsh, fish and powershell.
|
||||||
|
|
||||||
|
Detailed instructions:
|
||||||
|
|
||||||
|
Bash:
|
||||||
|
source <(tablizer --completion bash)
|
||||||
|
|
||||||
|
To load completions for each session, execute once:
|
||||||
|
|
||||||
|
# Linux:
|
||||||
|
$ tablizer --completion bash > /etc/bash_completion.d/tablizer
|
||||||
|
|
||||||
|
# macOS:
|
||||||
|
$ tablizer --completion bash > $(brew --prefix)/etc/bash_completion.d/tablizer
|
||||||
|
|
||||||
|
Zsh:
|
||||||
|
If shell completion is not already enabled in your environment, you
|
||||||
|
will need to enable it. You can execute the following once:
|
||||||
|
|
||||||
|
echo "autoload -U compinit; compinit" >> ~/.zshrc
|
||||||
|
|
||||||
|
To load completions for each session, execute once:
|
||||||
|
|
||||||
|
$ tablizer --completion zsh > "${fpath[1]}/_tablizer"
|
||||||
|
|
||||||
|
You will need to start a new shell for this setup to take effect.
|
||||||
|
|
||||||
|
fish:
|
||||||
|
tablizer --completion fish | source
|
||||||
|
|
||||||
|
To load completions for each session, execute once:
|
||||||
|
|
||||||
|
tablizer --completion fish > ~/.config/fish/completions/tablizer.fish
|
||||||
|
|
||||||
|
PowerShell:
|
||||||
|
tablizer --completion powershell | Out-String | Invoke-Expression
|
||||||
|
|
||||||
|
To load completions for every new session, run:
|
||||||
|
|
||||||
|
tablizer --completion powershell > tablizer.ps1
|
||||||
|
|
||||||
|
and source this file from your PowerShell profile.
|
||||||
|
|
||||||
BUGS
|
BUGS
|
||||||
In order to report a bug, unexpected behavior, feature requests or to
|
In order to report a bug, unexpected behavior, feature requests or to
|
||||||
submit a patch, please open an issue on github:
|
submit a patch, please open an issue on github:
|
||||||
@@ -252,6 +299,7 @@ Sort Mode Flags (mutually exclusive):
|
|||||||
-t, --sort-time sort according to time string
|
-t, --sort-time sort according to time string
|
||||||
|
|
||||||
Other Flags:
|
Other Flags:
|
||||||
|
--completion <shell> Generate the autocompletion script for <shell>
|
||||||
-d, --debug Enable debugging
|
-d, --debug Enable debugging
|
||||||
-h, --help help for tablizer
|
-h, --help help for tablizer
|
||||||
-m, --man Display manual page
|
-m, --man Display manual page
|
||||||
|
|||||||
3
demo/Makefile
Normal file
3
demo/Makefile
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
all:
|
||||||
|
LC_ALL=en_US.UTF-8 asciinema rec --cols 50 --row 30 -c ./demo.sh --overwrite tmp.cast
|
||||||
|
agg tmp.cast tmp.gif
|
||||||
31
demo/demo.sh
Executable file
31
demo/demo.sh
Executable file
@@ -0,0 +1,31 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
prompt() {
|
||||||
|
if test -n "$1"; then
|
||||||
|
echo
|
||||||
|
echo -n "% $*"
|
||||||
|
sleep 1
|
||||||
|
echo
|
||||||
|
$*
|
||||||
|
echo
|
||||||
|
echo -n "% "
|
||||||
|
else
|
||||||
|
echo -n "% "
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
PATH=..:$PATH
|
||||||
|
clear
|
||||||
|
while IFS=$'\t' read -r flags table msg source _; do
|
||||||
|
echo "#"
|
||||||
|
echo "# source tabular data:"
|
||||||
|
cat $table
|
||||||
|
echo
|
||||||
|
echo "#"
|
||||||
|
echo "# $msg:"
|
||||||
|
prompt "tablizer $flags $table"
|
||||||
|
|
||||||
|
sleep 4
|
||||||
|
clear
|
||||||
|
done < <(yq -r tables.yaml \
|
||||||
|
| yq -r '.tables[] | [.flags, .table, .msg, .source] | @tsv')
|
||||||
4
demo/table.demo1
Normal file
4
demo/table.demo1
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
NAME DURATION COUNT WHEN
|
||||||
|
beta 1d10h5m1s 33 3/1/2014
|
||||||
|
alpha 4h35m 170 2013-Feb-03
|
||||||
|
ceta 33d12h 9 06/Jan/2008 15:04:05 -0700
|
||||||
3
demo/table.demo2
Normal file
3
demo/table.demo2
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
PID TTY TIME CMD
|
||||||
|
30912 pts/0 00:00:00 bash
|
||||||
|
49526 pts/0 00:00:00 ps
|
||||||
54
demo/tables.yaml
Normal file
54
demo/tables.yaml
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
tables:
|
||||||
|
# OUTPUTS
|
||||||
|
- flags: -A
|
||||||
|
table: table.demo1
|
||||||
|
msg: default output mode
|
||||||
|
- flags: -O
|
||||||
|
table: table.demo1
|
||||||
|
msg: orgmode output mode
|
||||||
|
- flags: -M
|
||||||
|
table: table.demo1
|
||||||
|
msg: markdown output mode
|
||||||
|
- flags: -S
|
||||||
|
table: table.demo1
|
||||||
|
msg: shell output mode
|
||||||
|
- flags: -X
|
||||||
|
table: table.demo1
|
||||||
|
msg: extended output mode
|
||||||
|
- flags: -Y
|
||||||
|
table: table.demo1
|
||||||
|
msg: yaml output mode
|
||||||
|
- flags: -C
|
||||||
|
table: table.demo1
|
||||||
|
msg: CSV output mode
|
||||||
|
|
||||||
|
# SORTS
|
||||||
|
- flags: -A -k 3
|
||||||
|
table: table.demo1
|
||||||
|
msg: sort by column 3
|
||||||
|
- flags: -A -k 4 -t
|
||||||
|
table: table.demo1
|
||||||
|
msg: sort by column 4 and sort type time
|
||||||
|
- flags: -A -k 2 -a
|
||||||
|
table: table.demo1
|
||||||
|
msg: sort by column 2 and sort type duration
|
||||||
|
|
||||||
|
# REDUCE
|
||||||
|
- flags: -A -c 1,3
|
||||||
|
table: table.demo1
|
||||||
|
msg: only display column 1 and 3
|
||||||
|
- flags: -A -c AM,RA
|
||||||
|
table: table.demo1
|
||||||
|
msg: only display columns matching /(RA|AM)/
|
||||||
|
- flags: -X -c 1,3
|
||||||
|
table: table.demo1
|
||||||
|
msg: only display column 1 and 3 in extended mode
|
||||||
|
|
||||||
|
# SEARCH
|
||||||
|
- flags: /20 -A
|
||||||
|
table: table.demo1
|
||||||
|
msg: only show rows matching /20
|
||||||
|
- flags: /20 -A -v
|
||||||
|
table: table.demo1
|
||||||
|
msg: only show rows NOT matching /20
|
||||||
|
|
||||||
119
demo/tablizer-demo.cast
Normal file
119
demo/tablizer-demo.cast
Normal file
@@ -0,0 +1,119 @@
|
|||||||
|
{"version": 2, "width": 80, "height": 25, "timestamp": 1666890777, "env": {"SHELL": "/bin/bash", "TERM": "xterm-256color"}}
|
||||||
|
[0.004618, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||||
|
[0.010297, "o", "#\r\n# source tabular data:\r\n"]
|
||||||
|
[0.010898, "o", "NAME DURATION COUNT WHEN\r\nbeta 1d10h5m1s 33 3/1/2014\r\nalpha 4h35m 170 2013-Feb-03\r\nceta 33d12h 9 06/Jan/2008 15:04:05 -0700\r\n"]
|
||||||
|
[0.011125, "o", "\r\n#\r\n"]
|
||||||
|
[0.011177, "o", "# default output mode:\r\n"]
|
||||||
|
[0.011219, "o", "\r\n% tablizer -A table.demo1"]
|
||||||
|
[1.011851, "o", "\r\n"]
|
||||||
|
[1.013635, "o", "NAME(1)\tDURATION(2)\tCOUNT(3)\tWHEN(4) \r\nbeta \t1d10h5m1s \t33 \t3/1/2014 \t\r\nalpha \t4h35m \t170 \t2013-Feb-03 \t\r\nceta \t33d12h \t9 \t06/Jan/2008 15:04:05 -0700\t\r\n"]
|
||||||
|
[1.014021, "o", "\r\n% "]
|
||||||
|
[5.015241, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||||
|
[5.015339, "o", "#\r\n# source tabular data:\r\n"]
|
||||||
|
[5.015688, "o", "NAME DURATION COUNT WHEN\r\nbeta 1d10h5m1s 33 3/1/2014\r\nalpha 4h35m 170 2013-Feb-03\r\nceta 33d12h 9 06/Jan/2008 15:04:05 -0700\r\n"]
|
||||||
|
[5.015776, "o", "\r\n#\r\n# orgmode output mode:\r\n\r\n% tablizer -O table.demo1"]
|
||||||
|
[6.016322, "o", "\r\n"]
|
||||||
|
[6.01823, "o", "+---------+-------------+----------+----------------------------+\r\n| NAME(1) | DURATION(2) | COUNT(3) | WHEN(4) |\r\n+---------+-------------+----------+----------------------------+\r\n| beta | 1d10h5m1s | 33 | 3/1/2014 |\r\n| alpha | 4h35m | 170 | 2013-Feb-03 |\r\n| ceta | 33d12h | 9 | 06/Jan/2008 15:04:05 -0700 |\r\n+---------+-------------+----------+----------------------------+\r\n"]
|
||||||
|
[6.018497, "o", "\r\n% "]
|
||||||
|
[10.020014, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||||
|
[10.020112, "o", "#\r\n# source tabular data:\r\n"]
|
||||||
|
[10.020573, "o", "NAME DURATION COUNT WHEN\r\nbeta 1d10h5m1s 33 3/1/2014\r\nalpha 4h35m 170 2013-Feb-03\r\nceta 33d12h 9 06/Jan/2008 15:04:05 -0700\r\n"]
|
||||||
|
[10.020643, "o", "\r\n#\r\n"]
|
||||||
|
[10.02068, "o", "# markdown output mode:\r\n\r\n% tablizer -M table.demo1"]
|
||||||
|
[11.021559, "o", "\r\n"]
|
||||||
|
[11.023551, "o", "| NAME(1) | DURATION(2) | COUNT(3) | WHEN(4) |\r\n|---------|-------------|----------|----------------------------|\r\n| beta | 1d10h5m1s | 33 | 3/1/2014 |\r\n| alpha | 4h35m | 170 | 2013-Feb-03 |\r\n| ceta | 33d12h | 9 | 06/Jan/2008 15:04:05 -0700 |\r\n"]
|
||||||
|
[11.023838, "o", "\r\n% "]
|
||||||
|
[15.025244, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||||
|
[15.025345, "o", "#\r\n# source tabular data:\r\n"]
|
||||||
|
[15.025829, "o", "NAME DURATION COUNT WHEN\r\nbeta 1d10h5m1s 33 3/1/2014\r\nalpha 4h35m 170 2013-Feb-03\r\nceta 33d12h 9 06/Jan/2008 15:04:05 -0700\r\n"]
|
||||||
|
[15.025915, "o", "\r\n#\r\n# shell output mode:\r\n"]
|
||||||
|
[15.025931, "o", "\r\n"]
|
||||||
|
[15.025948, "o", "% tablizer -S table.demo1"]
|
||||||
|
[16.026714, "o", "\r\n"]
|
||||||
|
[16.028606, "o", "NAME(1)=\"beta\" DURATION(2)=\"1d10h5m1s\" COUNT(3)=\"33\" WHEN(4)=\"3/1/2014\"\r\nNAME(1)=\"alpha\" DURATION(2)=\"4h35m\" COUNT(3)=\"170\" WHEN(4)=\"2013-Feb-03\"\r\nNAME(1)=\"ceta\" DURATION(2)=\"33d12h\" COUNT(3)=\"9\" WHEN(4)=\"06/Jan/2008 15:04:05 -0700\"\r\n"]
|
||||||
|
[16.029144, "o", "\r\n% "]
|
||||||
|
[20.030593, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||||
|
[20.030706, "o", "#\r\n# source tabular data:\r\n"]
|
||||||
|
[20.03121, "o", "NAME DURATION COUNT WHEN\r\nbeta 1d10h5m1s 33 3/1/2014\r\nalpha 4h35m 170 2013-Feb-03\r\nceta 33d12h 9 06/Jan/2008 15:04:05 -0700\r\n"]
|
||||||
|
[20.031277, "o", "\r\n#\r\n# extended output mode:\r\n"]
|
||||||
|
[20.031327, "o", "\r\n% tablizer -X table.demo1"]
|
||||||
|
[21.032053, "o", "\r\n"]
|
||||||
|
[21.033787, "o", " NAME(1): beta\r\nDURATION(2): 1d10h5m1s\r\n COUNT(3): 33\r\n WHEN(4): 3/1/2014\r\n\r\n NAME(1): alpha\r\nDURATION(2): 4h35m\r\n COUNT(3): 170\r\n WHEN(4): 2013-Feb-03\r\n\r\n NAME(1): ceta\r\nDURATION(2): 33d12h\r\n COUNT(3): 9\r\n WHEN(4): 06/Jan/2008 15:04:05 -0700\r\n\r\n"]
|
||||||
|
[21.034132, "o", "\r\n% "]
|
||||||
|
[25.035531, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||||
|
[25.035585, "o", "#\r\n"]
|
||||||
|
[25.035681, "o", "# source tabular data:\r\n"]
|
||||||
|
[25.036179, "o", "NAME DURATION COUNT WHEN\r\nbeta 1d10h5m1s 33 3/1/2014\r\nalpha 4h35m 170 2013-Feb-03\r\nceta 33d12h 9 06/Jan/2008 15:04:05 -0700\r\n"]
|
||||||
|
[25.036232, "o", "\r\n#\r\n"]
|
||||||
|
[25.036274, "o", "# yaml output mode:\r\n\r\n% tablizer -Y table.demo1"]
|
||||||
|
[26.036928, "o", "\r\n"]
|
||||||
|
[26.038674, "o", "entries:\r\n - count: 33\r\n duration: \"1d10h5m1s\"\r\n name: \"beta\"\r\n when: \"3/1/2014\"\r\n - count: 170\r\n duration: \"4h35m\"\r\n name: \"alpha\"\r\n when: \"2013-Feb-03\"\r\n - count: 9\r\n duration: \"33d12h\"\r\n name: \"ceta\"\r\n when: \"06/Jan/2008 15:04:05 -0700\"\r\n"]
|
||||||
|
[26.038975, "o", "\r\n% "]
|
||||||
|
[30.040539, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||||
|
[30.040659, "o", "#\r\n# source tabular data:\r\n"]
|
||||||
|
[30.041167, "o", "NAME DURATION COUNT WHEN\r\nbeta 1d10h5m1s 33 3/1/2014\r\nalpha 4h35m 170 2013-Feb-03\r\nceta 33d12h 9 06/Jan/2008 15:04:05 -0700\r\n"]
|
||||||
|
[30.041246, "o", "\r\n#\r\n# CSV output mode:\r\n\r\n% tablizer -C table.demo1"]
|
||||||
|
[31.042088, "o", "\r\n"]
|
||||||
|
[31.043721, "o", "NAME,DURATION,COUNT,WHEN\r\nbeta,1d10h5m1s,33,3/1/2014\r\nalpha,4h35m,170,2013-Feb-03\r\nceta,33d12h,9,06/Jan/2008 15:04:05 -0700\r\n"]
|
||||||
|
[31.043997, "o", "\r\n% "]
|
||||||
|
[35.045523, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||||
|
[35.04563, "o", "#\r\n# source tabular data:\r\n"]
|
||||||
|
[35.046209, "o", "NAME DURATION COUNT WHEN\r\nbeta 1d10h5m1s 33 3/1/2014\r\nalpha 4h35m 170 2013-Feb-03\r\nceta 33d12h 9 06/Jan/2008 15:04:05 -0700\r\n"]
|
||||||
|
[35.046275, "o", "\r\n#\r\n# sort by column 3:\r\n\r\n% tablizer -A -k 3 table.demo1"]
|
||||||
|
[36.047083, "o", "\r\n"]
|
||||||
|
[36.048793, "o", "NAME(1)\tDURATION(2)\tCOUNT(3)\tWHEN(4) \r\nalpha \t4h35m \t170 \t2013-Feb-03 \t\r\nbeta \t1d10h5m1s \t33 \t3/1/2014 \t\r\nceta \t33d12h \t9 \t06/Jan/2008 15:04:05 -0700\t\r\n"]
|
||||||
|
[36.049077, "o", "\r\n% "]
|
||||||
|
[40.050739, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||||
|
[40.050925, "o", "#\r\n# source tabular data:\r\n"]
|
||||||
|
[40.051481, "o", "NAME DURATION COUNT WHEN\r\nbeta 1d10h5m1s 33 3/1/2014\r\nalpha 4h35m 170 2013-Feb-03\r\nceta 33d12h 9 06/Jan/2008 15:04:05 -0700\r\n"]
|
||||||
|
[40.051671, "o", "\r\n#\r\n# sort by column 4 and sort type time:\r\n\r\n% tablizer -A -k 4 -t table.demo1"]
|
||||||
|
[41.052486, "o", "\r\n"]
|
||||||
|
[41.05454, "o", "NAME(1)\tDURATION(2)\tCOUNT(3)\tWHEN(4) \r\nceta \t33d12h \t9 \t06/Jan/2008 15:04:05 -0700\t\r\nalpha \t4h35m \t170 \t2013-Feb-03 \t\r\nbeta \t1d10h5m1s \t33 \t3/1/2014 \t\r\n"]
|
||||||
|
[41.054864, "o", "\r\n% "]
|
||||||
|
[45.056297, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||||
|
[45.056405, "o", "#\r\n# source tabular data:\r\n"]
|
||||||
|
[45.056895, "o", "NAME DURATION COUNT WHEN\r\nbeta 1d10h5m1s 33 3/1/2014\r\nalpha 4h35m 170 2013-Feb-03\r\nceta 33d12h 9 06/Jan/2008 15:04:05 -0700\r\n"]
|
||||||
|
[45.056978, "o", "\r\n#\r\n"]
|
||||||
|
[45.057023, "o", "# sort by column 2 and sort type duration:\r\n"]
|
||||||
|
[45.057073, "o", "\r\n% tablizer -A -k 2 -a table.demo1"]
|
||||||
|
[46.057895, "o", "\r\n"]
|
||||||
|
[46.059684, "o", "NAME(1)\tDURATION(2)\tCOUNT(3)\tWHEN(4) \r\nalpha \t4h35m \t170 \t2013-Feb-03 \t\r\nbeta \t1d10h5m1s \t33 \t3/1/2014 \t\r\nceta \t33d12h \t9 \t06/Jan/2008 15:04:05 -0700\t\r\n"]
|
||||||
|
[46.059988, "o", "\r\n% "]
|
||||||
|
[50.061514, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||||
|
[50.061622, "o", "#\r\n# source tabular data:\r\n"]
|
||||||
|
[50.062091, "o", "NAME DURATION COUNT WHEN\r\nbeta 1d10h5m1s 33 3/1/2014\r\nalpha 4h35m 170 2013-Feb-03\r\nceta 33d12h 9 06/Jan/2008 15:04:05 -0700\r\n"]
|
||||||
|
[50.062188, "o", "\r\n#\r\n# only display column 1 and 3:\r\n\r\n% tablizer -A -c 1,3 table.demo1"]
|
||||||
|
[51.062985, "o", "\r\n"]
|
||||||
|
[51.066293, "o", "NAME(1)\tCOUNT(3) \r\nbeta \t33 \t\r\nalpha \t170 \t\r\nceta \t9 \t\r\n"]
|
||||||
|
[51.066843, "o", "\r\n% "]
|
||||||
|
[55.070781, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||||
|
[55.071327, "o", "#\r\n# source tabular data:\r\n"]
|
||||||
|
[55.073499, "o", "NAME DURATION COUNT WHEN\r\nbeta 1d10h5m1s 33 3/1/2014\r\nalpha 4h35m 170 2013-Feb-03\r\nceta 33d12h 9 06/Jan/2008 15:04:05 -0700\r\n"]
|
||||||
|
[55.073822, "o", "\r\n#\r\n# only display columns matching /(RA|AM)/:\r\n"]
|
||||||
|
[55.074188, "o", "\r\n% tablizer -A -c AM,RA table.demo1"]
|
||||||
|
[56.07636, "o", "\r\n"]
|
||||||
|
[56.078603, "o", "NAME(1)\tDURATION(2) \r\nbeta \t1d10h5m1s \t\r\nalpha \t4h35m \t\r\nceta \t33d12h \t\r\n"]
|
||||||
|
[56.078957, "o", "\r\n% "]
|
||||||
|
[60.080574, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||||
|
[60.080734, "o", "#\r\n# source tabular data:\r\n"]
|
||||||
|
[60.081286, "o", "NAME DURATION COUNT WHEN\r\nbeta 1d10h5m1s 33 3/1/2014\r\nalpha 4h35m 170 2013-Feb-03\r\nceta 33d12h 9 06/Jan/2008 15:04:05 -0700\r\n"]
|
||||||
|
[60.081418, "o", "\r\n#\r\n# only display column 1 and 3 in extended mode:\r\n\r\n% tablizer -X -c 1,3 table.demo1"]
|
||||||
|
[61.082844, "o", "\r\n"]
|
||||||
|
[61.089822, "o", " NAME(1): beta\r\nCOUNT(3): 33\r\n\r\n NAME(1): alpha\r\nCOUNT(3): 170\r\n\r\n NAME(1): ceta\r\nCOUNT(3): 9\r\n\r\n"]
|
||||||
|
[61.090969, "o", "\r\n% "]
|
||||||
|
[65.096092, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||||
|
[65.096571, "o", "#\r\n# source tabular data:\r\n"]
|
||||||
|
[65.098736, "o", "NAME DURATION COUNT WHEN\r\nbeta 1d10h5m1s 33 3/1/2014\r\nalpha 4h35m 170 2013-Feb-03\r\nceta 33d12h 9 06/Jan/2008 15:04:05 -0700\r\n"]
|
||||||
|
[65.099085, "o", "\r\n#\r\n# only show rows matching /20:\r\n"]
|
||||||
|
[65.099283, "o", "\r\n% tablizer /20 -A table.demo1"]
|
||||||
|
[66.101537, "o", "\r\n"]
|
||||||
|
[66.109112, "o", "NAME(1)\tDURATION(2)\tCOUNT(3)\tWHEN(4) \r\nbeta \t1d10h5m1s \t33 \t3/1\u001b[102;30m/20\u001b[0m14 \t\r\nceta \t33d12h \t9 \t06/Jan\u001b[102;30m/20\u001b[0m08 15:04:05 -0700\t\r\n"]
|
||||||
|
[66.109405, "o", "\r\n% "]
|
||||||
|
[70.11076, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||||
|
[70.110873, "o", "#\r\n# source tabular data:\r\n"]
|
||||||
|
[70.111365, "o", "NAME DURATION COUNT WHEN\r\nbeta 1d10h5m1s 33 3/1/2014\r\nalpha 4h35m 170 2013-Feb-03\r\nceta 33d12h 9 06/Jan/2008 15:04:05 -0700\r\n"]
|
||||||
|
[70.111469, "o", "\r\n#\r\n# only show rows NOT matching /20:\r\n\r\n% tablizer /20 -A -v table.demo1"]
|
||||||
|
[71.112738, "o", "\r\n"]
|
||||||
|
[71.120032, "o", "NAME(1)\tDURATION(2)\tCOUNT(3)\tWHEN(4) \r\nalpha \t4h35m \t170 \t2013-Feb-03\t\r\n"]
|
||||||
|
[71.121127, "o", "\r\n% "]
|
||||||
|
[75.126199, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||||
BIN
demo/tablizer-demo.gif
Normal file
BIN
demo/tablizer-demo.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 243 KiB |
65
tablizer.1
65
tablizer.1
@@ -133,7 +133,7 @@
|
|||||||
.\" ========================================================================
|
.\" ========================================================================
|
||||||
.\"
|
.\"
|
||||||
.IX Title "TABLIZER 1"
|
.IX Title "TABLIZER 1"
|
||||||
.TH TABLIZER 1 "2022-10-23" "1" "User Commands"
|
.TH TABLIZER 1 "2022-11-01" "1" "User Commands"
|
||||||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||||||
.\" way too many mistakes in technical documents.
|
.\" way too many mistakes in technical documents.
|
||||||
.if n .ad l
|
.if n .ad l
|
||||||
@@ -170,6 +170,7 @@ tablizer \- Manipulate tabular output of other programs
|
|||||||
\& \-t, \-\-sort\-time sort according to time string
|
\& \-t, \-\-sort\-time sort according to time string
|
||||||
\&
|
\&
|
||||||
\& Other Flags:
|
\& Other Flags:
|
||||||
|
\& \-\-completion <shell> Generate the autocompletion script for <shell>
|
||||||
\& \-d, \-\-debug Enable debugging
|
\& \-d, \-\-debug Enable debugging
|
||||||
\& \-h, \-\-help help for tablizer
|
\& \-h, \-\-help help for tablizer
|
||||||
\& \-m, \-\-man Display manual page
|
\& \-m, \-\-man Display manual page
|
||||||
@@ -370,6 +371,68 @@ precedence over environment variables.
|
|||||||
.IP "<\s-1NO_COLORS\s0> \- disable colorization of matches, like \fB\-N\fR" 4
|
.IP "<\s-1NO_COLORS\s0> \- disable colorization of matches, like \fB\-N\fR" 4
|
||||||
.IX Item "<NO_COLORS> - disable colorization of matches, like -N"
|
.IX Item "<NO_COLORS> - disable colorization of matches, like -N"
|
||||||
.PD
|
.PD
|
||||||
|
.SS "\s-1COMPLETION\s0"
|
||||||
|
.IX Subsection "COMPLETION"
|
||||||
|
Shell completion for command line options can be enabled by using the
|
||||||
|
\&\fB\-\-completion\fR flag. The required parameter is the name of your
|
||||||
|
shell. Currently supported are: bash, zsh, fish and powershell.
|
||||||
|
.PP
|
||||||
|
Detailed instructions:
|
||||||
|
.IP "Bash:" 4
|
||||||
|
.IX Item "Bash:"
|
||||||
|
.Vb 1
|
||||||
|
\& source <(tablizer \-\-completion bash)
|
||||||
|
.Ve
|
||||||
|
.Sp
|
||||||
|
To load completions for each session, execute once:
|
||||||
|
.Sp
|
||||||
|
.Vb 2
|
||||||
|
\& # Linux:
|
||||||
|
\& $ tablizer \-\-completion bash > /etc/bash_completion.d/tablizer
|
||||||
|
\&
|
||||||
|
\& # macOS:
|
||||||
|
\& $ tablizer \-\-completion bash > $(brew \-\-prefix)/etc/bash_completion.d/tablizer
|
||||||
|
.Ve
|
||||||
|
.IP "Zsh:" 4
|
||||||
|
.IX Item "Zsh:"
|
||||||
|
If shell completion is not already enabled in your environment,
|
||||||
|
you will need to enable it. You can execute the following once:
|
||||||
|
.Sp
|
||||||
|
.Vb 1
|
||||||
|
\& echo "autoload \-U compinit; compinit" >> ~/.zshrc
|
||||||
|
.Ve
|
||||||
|
.Sp
|
||||||
|
To load completions for each session, execute once:
|
||||||
|
.Sp
|
||||||
|
.Vb 1
|
||||||
|
\& $ tablizer \-\-completion zsh > "${fpath[1]}/_tablizer"
|
||||||
|
.Ve
|
||||||
|
.Sp
|
||||||
|
You will need to start a new shell for this setup to take effect.
|
||||||
|
.IP "fish:" 4
|
||||||
|
.IX Item "fish:"
|
||||||
|
.Vb 1
|
||||||
|
\& tablizer \-\-completion fish | source
|
||||||
|
.Ve
|
||||||
|
.Sp
|
||||||
|
To load completions for each session, execute once:
|
||||||
|
.Sp
|
||||||
|
.Vb 1
|
||||||
|
\& tablizer \-\-completion fish > ~/.config/fish/completions/tablizer.fish
|
||||||
|
.Ve
|
||||||
|
.IP "PowerShell:" 4
|
||||||
|
.IX Item "PowerShell:"
|
||||||
|
.Vb 1
|
||||||
|
\& tablizer \-\-completion powershell | Out\-String | Invoke\-Expression
|
||||||
|
.Ve
|
||||||
|
.Sp
|
||||||
|
To load completions for every new session, run:
|
||||||
|
.Sp
|
||||||
|
.Vb 1
|
||||||
|
\& tablizer \-\-completion powershell > tablizer.ps1
|
||||||
|
.Ve
|
||||||
|
.Sp
|
||||||
|
and source this file from your PowerShell profile.
|
||||||
.SH "BUGS"
|
.SH "BUGS"
|
||||||
.IX Header "BUGS"
|
.IX Header "BUGS"
|
||||||
In order to report a bug, unexpected behavior, feature requests
|
In order to report a bug, unexpected behavior, feature requests
|
||||||
|
|||||||
55
tablizer.pod
55
tablizer.pod
@@ -31,6 +31,7 @@ tablizer - Manipulate tabular output of other programs
|
|||||||
-t, --sort-time sort according to time string
|
-t, --sort-time sort according to time string
|
||||||
|
|
||||||
Other Flags:
|
Other Flags:
|
||||||
|
--completion <shell> Generate the autocompletion script for <shell>
|
||||||
-d, --debug Enable debugging
|
-d, --debug Enable debugging
|
||||||
-h, --help help for tablizer
|
-h, --help help for tablizer
|
||||||
-m, --man Display manual page
|
-m, --man Display manual page
|
||||||
@@ -227,6 +228,60 @@ precedence over environment variables.
|
|||||||
|
|
||||||
=back
|
=back
|
||||||
|
|
||||||
|
=head2 COMPLETION
|
||||||
|
|
||||||
|
Shell completion for command line options can be enabled by using the
|
||||||
|
B<--completion> flag. The required parameter is the name of your
|
||||||
|
shell. Currently supported are: bash, zsh, fish and powershell.
|
||||||
|
|
||||||
|
Detailed instructions:
|
||||||
|
|
||||||
|
=over
|
||||||
|
|
||||||
|
=item Bash:
|
||||||
|
|
||||||
|
source <(tablizer --completion bash)
|
||||||
|
|
||||||
|
To load completions for each session, execute once:
|
||||||
|
|
||||||
|
# Linux:
|
||||||
|
$ tablizer --completion bash > /etc/bash_completion.d/tablizer
|
||||||
|
|
||||||
|
# macOS:
|
||||||
|
$ tablizer --completion bash > $(brew --prefix)/etc/bash_completion.d/tablizer
|
||||||
|
|
||||||
|
=item Zsh:
|
||||||
|
|
||||||
|
If shell completion is not already enabled in your environment,
|
||||||
|
you will need to enable it. You can execute the following once:
|
||||||
|
|
||||||
|
echo "autoload -U compinit; compinit" >> ~/.zshrc
|
||||||
|
|
||||||
|
To load completions for each session, execute once:
|
||||||
|
|
||||||
|
$ tablizer --completion zsh > "${fpath[1]}/_tablizer"
|
||||||
|
|
||||||
|
You will need to start a new shell for this setup to take effect.
|
||||||
|
|
||||||
|
=item fish:
|
||||||
|
|
||||||
|
tablizer --completion fish | source
|
||||||
|
|
||||||
|
To load completions for each session, execute once:
|
||||||
|
|
||||||
|
tablizer --completion fish > ~/.config/fish/completions/tablizer.fish
|
||||||
|
|
||||||
|
=item PowerShell:
|
||||||
|
|
||||||
|
tablizer --completion powershell | Out-String | Invoke-Expression
|
||||||
|
|
||||||
|
To load completions for every new session, run:
|
||||||
|
|
||||||
|
tablizer --completion powershell > tablizer.ps1
|
||||||
|
|
||||||
|
and source this file from your PowerShell profile.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
=head1 BUGS
|
=head1 BUGS
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user