1
|
1 package main
|
|
2
|
|
3 import (
|
|
4 "bufio"
|
|
5 "flag"
|
|
6 "fmt"
|
|
7 "io/ioutil"
|
|
8 "log"
|
|
9 "os"
|
|
10 "sort"
|
|
11 "strings"
|
|
12 )
|
|
13
|
|
14 var n int
|
|
15 var dir string
|
|
16 func init() {
|
|
17 flag.IntVar( &n, "n", 20, "print top N" )
|
|
18 flag.StringVar( &dir, "d", "data", "directory" )
|
|
19 }
|
|
20
|
|
21 func main() {
|
|
22 flag.Parse()
|
|
23
|
|
24 files, err := ioutil.ReadDir( dir )
|
|
25 if err != nil {
|
|
26 log.Fatal( err )
|
|
27 }
|
|
28
|
|
29 var ea []string
|
|
30 for _, file := range files {
|
|
31 if strings.HasPrefix( file.Name(), "m" ) {
|
|
32 f, err := os.Open( dir + "/" + file.Name() )
|
|
33 if err != nil {
|
|
34 log.Fatal( err )
|
|
35 }
|
|
36
|
|
37 scanner := bufio.NewScanner( f )
|
|
38 for scanner.Scan() {
|
|
39 if ! strings.HasPrefix( scanner.Text(), "ea = 9999.99" ) {
|
|
40 ea = append( ea, scanner.Text() )
|
|
41 }
|
|
42 }
|
|
43 f.Close()
|
|
44 }
|
|
45 }
|
|
46
|
|
47 sort.Strings( ea )
|
|
48 for i, e := range ea {
|
|
49 if i > n - 1 {
|
|
50 break
|
|
51 }
|
|
52 fmt.Println( e )
|
|
53 }
|
|
54 }
|