Exercise 1-5
[goproglang.git] / dup3.go
1 package main
2
3 import (
4     "fmt"
5     "io/ioutil"
6     "os"
7     "strings"
8 )
9
10 func main() {
11   counts := make(map[string]int)
12   for _, filename := range os.Args[1:] {
13     data, err := ioutil.ReadFile(filename)
14     if err != nil {
15       fmt.Fprintf(os.Stderr, "dup3: %v\n", err)
16       continue
17     }
18     for _, line := range strings.Split(string(data), "\n") {
19       counts[line]++
20     }
21   }
22   for line, n := range counts {
23     if n > 1 {
24       fmt.Printf("%d\t%s\n", n, line)
25     }
26   }
27 }