github.com/elves/elvish@v0.15.0/website/cmd/runefreq/main.go (about) 1 package main 2 3 import ( 4 "bufio" 5 "fmt" 6 "io" 7 "log" 8 "os" 9 "sort" 10 ) 11 12 func main() { 13 freq := map[int]int{} 14 rd := bufio.NewReader(os.Stdin) 15 for { 16 r, _, err := rd.ReadRune() 17 if err == io.EOF { 18 break 19 } else if err != nil { 20 log.Fatal(err) 21 } 22 if r > 0x7f { 23 freq[int(r)]++ 24 } 25 } 26 var keys []int 27 for k := range freq { 28 keys = append(keys, k) 29 } 30 sort.Ints(keys) 31 for _, k := range keys { 32 fmt.Printf("%d U+%04d %s\n", freq[k], k, string(rune(k))) 33 } 34 }