A simple grep implementation in Go
1package main
2
3import(
4 "bufio"
5 "fmt"
6 "log"
7 "os"
8 "regexp"
9)
10
11func handleLine(line string) {
12 matched, err := regexp.MatchString(os.Args[1], line)
13
14 if err != nil {
15 log.Fatal(err)
16 } else if matched {
17 fmt.Println(line)
18 }
19}
20
21func main() {
22 scanner := bufio.NewScanner(os.Stdin)
23
24 for scanner.Scan() {
25 handleLine(scanner.Text())
26 }
27
28 if err := scanner.Err(); err != nil {
29 log.Fatal(err)
30 }
31}