Documentation
¶
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var Cmd = &Z.Cmd{ Name: `grep`, Aliases: []string{`bongrep`}, Copyright: `Copyright 2021 Robert S Muhlestein`, Version: `v0.2.5`, License: `Apache-2.0`, Summary: `async grep with regex`, Usage: `(help|PATTERN [TARGET ...])`, UseVars: true, UseConf: true, Commands: []*Z.Cmd{help.Cmd}, Description: ` The {{aka}} command is a simple utility similar to grep that can be composed into bonzai stateful command trees. It uses Go regular expressions to return all occurrences within a given file. Each TARGET is either a file or directory which will be recursively searched. If no TARGET is provided assumes the current directory. `, Call: func(x *Z.Cmd, args ...string) error { var padding = 20 if len(args) == 0 { return help.Cmd.Call(x, args...) } pad, err := x.Get(`padding`) if err != nil { return err } if pad != "" { padding, err = strconv.Atoi(pad) if err != nil { return err } } if len(args) == 1 { args = append(args, ".") } results, err := This(args[0], padding, args[1:]...) if err != nil { return err } results.ShowFile = true if term.IsInteractive() { fmt.Print(results.Pretty()) return nil } fmt.Print(results) return nil }, }
View Source
var DefFileColor = term.Black
View Source
var DefMatchColor = term.Yellow
Functions ¶
This section is empty.
Types ¶
type Result ¶
type Result struct { File string // file or path to the file (rel, abs, whatever) Text string // sample of text containing the hit Beg int // byte of beginning within overall file End int // byte of ending within overall file TextBeg int // beginning within Text TextEnd int // ending within Text FileColor string // color to use for Pretty File MatchColor string // color to use for Pretty Match ShowFile bool // display file in Pretty or not }
type Results ¶
type Results struct { ShowFile bool // include file in marshaled output FileColor string // color for file name (see DefFileColor) MatchColor string // color for the match in text (see DefMatchColor Hits []Result // actual results }
func This ¶
This (as in grep.This) searches the targets for all instances of the regular expression pattern which is cached. Subsequent searches for the same pattern will use the cached compiled regular expression for that pattern. Add pad number of bytes to beginning and ending to give context. Does not return an error if no results are found, only if something related to reading the targets involved.
Example (Hit_First) ¶
package main import ( "fmt" "github.com/rwxrob/grep" ) func main() { results, err := grep.This(`advent`, 90, `testdata/advent.md`) if err != nil { fmt.Println(err) } hit := results.Hits[0] fmt.Printf("%v\n", hit.Text[hit.Beg:hit.End]) fmt.Printf("%v\n", hit.Text[hit.TextBeg:hit.TextEnd]) fmt.Println(hit.Beg == hit.TextBeg) fmt.Println(hit.End == hit.TextEnd) }
Output: advent advent true true
Example (Hit_Last) ¶
package main import ( "fmt" "github.com/rwxrob/grep" ) func main() { results, err := grep.This(`holidays`, 90, `testdata/advent.md`) if err != nil { fmt.Println(err) } hit := results.Hits[len(results.Hits)-1] fmt.Printf("%v\n", hit.Text[hit.TextBeg:hit.TextEnd]) fmt.Printf("%v:%v\n", hit.Beg, hit.End) fmt.Printf("%v:%v\n", hit.TextBeg, hit.TextEnd) fmt.Printf("%q\n", hit.Text) }
Output: holidays 1585:1593 90:98 "ires whiteboard interviews, there is something seriously wrong with your view of what the holidays are actually about. It ain't that.\n\n"
Click to show internal directories.
Click to hide internal directories.