如何在golang中实现类似于unix中的cat的文本流?

时间:2019-02-10 00:30:09

标签: unix go stream cat

我想实现cat和golang的一个版本,并对其进行修改以制作其他有用的程序

3 个答案:

答案 0 :(得分:1)

go-coreutils是您可以从中汲取灵感的一个很酷的项目。它具有诸如cat之类的GNU核心命令行实用程序的Go实现。例如Here is cat

答案 1 :(得分:0)

您应该看一下os.Open(...)io.Copy(...),但是,不仅限于此。

也许您应该真正从https://tour.golang.org/welcome/1上的教程开始

答案 2 :(得分:0)

这是一个开始,您可以像这样继续并管理标记等。

package main

import (
    "fmt"
    "io/ioutil"
    "os"
)

func main() {
    if len(os.Args) == 2 {
        c, err := ioutil.ReadFile(os.Args[1])
        if err != nil {
            fmt.Println(err)
            os.Exit(1)
        }
        fmt.Printf("%s\n", string(c))
    } else {
        for {
            var newText string
            fmt.Scanf("%s", &newText)
            fmt.Println(newText)
        }
    }
}
相关问题