注册 登录
  • 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!

Go语言模仿linux cat命令

go 水墨上仙 2681次浏览 已收录 手机上查看

Go语言模仿linux cat命令

package main
import (
  "io"
  "os"
  "fmt"
  "bufio"
  "flag"
)
var numberFlag = flag.Bool("n", false, "number each line")
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.Open(flag.Arg(i))
    if e != nil {
      fmt.Fprintf(os.Stderr, "%s: error reading from %s: %s\n", os.Args[0], flag.Arg(i), e.Error())
      continue
    }
    cat(bufio.NewReader(f))
  }
}

 


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明Go语言模仿linux cat命令
喜欢 (0)
[开心洋葱]
分享 (0)
水墨上仙
关于作者:
水墨上仙
加载中……