Up to Exercise 1-4
[goproglang.git] / dup1.go
1 // Dup1 prints the text of each line that appear more than
2 // once in the standard input, preceded by it's count
3
4 package main
5
6 import (
7         "bufio"
8         "fmt"
9         "os"
10 )
11
12 func main() {
13         counts := make(map[string]int)
14         input := bufio.NewScanner(os.Stdin)
15         for input.Scan() {
16                 counts[input.Text()]++
17         }
18         // NOTE: ignoring potential errors from input.Err()
19         for line, n := range counts {
20         // fmt.Println(line, n);
21                 if n > 1 {
22                         fmt.Printf("%d\t%s\n", n, line)
23                 }
24         }
25 }