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}