Files
iris-context/commands/text/textproc.go
T
VERSE ebde9ba68f refactor(commands): separate commands and its core into two folders (#32)
- I think it would be better if one for commands only, one for the spec
handling core logic so people won't be confused by the core logic inside
the commands folder (cleaner I guess)
- Regen docs
2026-07-05 11:27:30 +07:00

141 lines
4.3 KiB
Go

package text
import (
"github.com/versenilvis/iris/spec"
)
func init() {
// awk
spec.Register(&spec.Spec{
Name: "awk",
Description: "pattern-directed scanning",
Generator: spec.FileGenerator(),
Options: []spec.Option{
{Name: "-F", Description: "field separator"},
{Name: "-v", Description: "assign variable"},
{Name: "-f", Description: "read program from file"},
{Name: "-i", Description: "in-place edit (gawk)"},
{Name: "--posix", Description: "POSIX compat mode"},
{Name: "-W", Description: "compatibility options"},
},
})
// gawk is also common
spec.Register(&spec.Spec{
Name: "gawk",
Description: "GNU awk",
Generator: spec.FileGenerator(),
Options: []spec.Option{
{Name: "-F", Description: "field separator"},
{Name: "-v", Description: "assign variable"},
{Name: "-f", Description: "read program from file"},
{Name: "-i", Description: "in-place edit"},
{Name: "--sandbox", Description: "sandbox mode"},
{Name: "--profile", Description: "profiling output"},
},
})
// sed
spec.Register(&spec.Spec{
Name: "sed",
Description: "stream editor",
Generator: spec.FileGenerator(),
Options: []spec.Option{
{Name: "-e", Description: "add expression"},
{Name: "-f", Description: "read script from file"},
{Name: "-i", Description: "in-place edit"},
{Name: "-n", Description: "suppress default output"},
{Name: "-E", Description: "extended regex"},
{Name: "-r", Description: "extended regex (GNU)"},
{Name: "-z", Description: "null-delimited lines"},
{Name: "--sandbox", Description: "sandbox mode"},
},
})
// xargs
spec.Register(&spec.Spec{
Name: "xargs",
Description: "build and run commands from stdin",
Options: []spec.Option{
{Name: "-I", Description: "replace string (e.g. -I{})"},
{Name: "-n", Description: "max args per command"},
{Name: "-P", Description: "parallel jobs"},
{Name: "-0", Description: "null-delimited input"},
{Name: "-d", Description: "custom delimiter"},
{Name: "-t", Description: "print command before executing"},
{Name: "-p", Description: "prompt before executing"},
{Name: "-r", Description: "no run if empty input"},
{Name: "--no-run-if-empty", Description: "don't run if no input"},
},
})
// tr
spec.Register(&spec.Spec{
Name: "tr",
Description: "translate or delete characters",
Options: []spec.Option{
{Name: "-d", Description: "delete characters"},
{Name: "-s", Description: "squeeze repeated chars"},
{Name: "-c", Description: "complement set"},
},
})
// sort
spec.Register(&spec.Spec{
Name: "sort",
Description: "sort lines of text",
Generator: spec.FileGenerator(),
Options: []spec.Option{
{Name: "-n", Description: "numeric sort"},
{Name: "-r", Description: "reverse sort"},
{Name: "-k", Description: "sort by key field"},
{Name: "-t", Description: "field separator"},
{Name: "-u", Description: "unique (remove duplicates)"},
{Name: "-f", Description: "ignore case"},
{Name: "-h", Description: "human-readable sort"},
{Name: "-V", Description: "version sort"},
{Name: "-o", Description: "output file"},
{Name: "--parallel", Description: "parallel sort"},
},
})
// uniq
spec.Register(&spec.Spec{
Name: "uniq",
Description: "filter adjacent duplicate lines",
Generator: spec.FileGenerator(),
Options: []spec.Option{
{Name: "-c", Description: "prefix count"},
{Name: "-d", Description: "only duplicates"},
{Name: "-u", Description: "only unique"},
{Name: "-i", Description: "ignore case"},
{Name: "-f", Description: "skip n fields"},
{Name: "-s", Description: "skip n chars"},
},
})
// cut
spec.Register(&spec.Spec{
Name: "cut",
Description: "extract columns from lines",
Generator: spec.FileGenerator(),
Options: []spec.Option{
{Name: "-d", Description: "delimiter"},
{Name: "-f", Description: "field numbers (e.g. 1,3 or 1-3)"},
{Name: "-c", Description: "character positions"},
{Name: "--output-delimiter", Description: "output delimiter"},
},
})
// tee
spec.Register(&spec.Spec{
Name: "tee",
Description: "read stdin, write to stdout and files",
Generator: spec.FileGenerator(),
Options: []spec.Option{
{Name: "-a", Description: "append to files"},
{Name: "-i", Description: "ignore interrupts"},
},
})
}