dup3.go 441 B

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