diff --git a/.github/workflows/main.go b/.github/workflows/main.go new file mode 100644 index 0000000..f476741 --- /dev/null +++ b/.github/workflows/main.go @@ -0,0 +1,31 @@ +// Copyright © 2016 Alan A. A. Donovan & Brian W. Kernighan. +// License: https://creativecommons.org/licenses/by-nc-sa/4.0/ + +// See page 8. +//!+ + +// Dup1 prints the text of each line that appears more than +// once in the standard input, preceded by its count. +package main + +import ( + "bufio" + "fmt" + "os" +) + +func main() { + counts := make(map[string]int) + input := bufio.NewScanner(os.Stdin) + for input.Scan() { + counts[input.Text()]++ + } + // NOTE: ignoring potential errors from input.Err() + for line, n := range counts { + if n > 1 { + fmt.Printf("%d\t%s\n", n, line) + } + } +} + +//!-