- package main
- import (
- "io"
- "os"
- "fmt"
- "bufio"
- "flag"
- )
- var numberFlag = flag.Bool("n", false, "开启行号")
- func cat(r *bufio.Reader) {
- i := 1
- for {
- buf, e := r.ReadBytes('\\n')
- if e == io.EOF {
- break
- }
- if *numberFlag {
- fmt.Fprintf(os.Stdout, "%5d %s", i, buf)
- i++
- }else {
- fmt.Fprintf(os.Stdout, "%s", buf)
- }
- }
- return
- }
- func main() {
- flag.Parse()
- if flag.NArg() == 0 {
- cat(bufio.NewReader(os.Stdin))
- }
- for i := 0; i < flag.NArg(); i++ {
- f, e := os.OpenFile(flag.Arg(i), os.O_RDONLY, 0)
- if e != nil {
- fmt.Fprintf(os.Stderr, "%s: 无法读取 %s 文件.\\n\\t%v\\n",os.Args[0],flag.Arg(i),e)
- continue
- }
- cat(bufio.NewReader(f))
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/250220148796.html
来源: http://www.codesnippet.cn/detail/250220148796.html