Go: Write a command-line (CLI) application
This example is a simplified version of the Unix grep
command. The program searches the input file for lines containing the given pattern and prints these lines.
func main() {
log.SetPrefix("grep: ")
log.SetFlags(0) // no extra info in log messages
if len(os.Args) != 3 {
fmt.Printf("Usage: %v PATTERN FILE\n", os.Args[0])
return
}
pattern, err := regexp.Compile(os.Args[1])
if err != nil {
log.Fatalln(err)
}
file, err := os.Open(os.Args[2])
if err != nil {
log.Fatalln(err)
}
defer file.Close()
scanner := bufio.NewScanner(file)
for scanner.Scan() {
line := scanner.Text()
if pattern.MatchString(line) {
fmt.Println(line)
}
}
if err := scanner.Err(); err != nil {
log.Println(err)
}
}
Comments
Be the first to comment!