package main import ( "fmt" "bufio" "os" "log" "flag" "io" ) func HeadFile(file io.Reader, count int) { scan := bufio.NewScanner(file) for cur_line := 0; scan.Scan(); cur_line++ { line := scan.Text() if cur_line < count { fmt.Println(line) } } if scan.Err() != nil { log.Fatal(scan.Err()) } } func main() { var count int flag.IntVar(&count, "n", 10, "number of lines") flag.Parse() if flag.NArg() > 0 { files := flag.Args() for _, fname := range files { file, err := os.Open(fname) if err != nil { log.Fatal(err) } HeadFile(file, count) } } else { HeadFile(os.Stdin, count) } }