2015/10/30

Recent entries from same category

  1. Go言語で Lisp 処理系を作った。
  2. Go 言語のスライス挿入ベンチマーク
  3. Go 言語で変数のシャドウイングを避けたいなら shadow を使おう。
  4. Go 言語の struct の実体を引数で(なるべく)渡せない様にするテクニック
  5. Oracle Cloud Function でしりとりした。

golang - Goで外部コマンドをパイプして実行する - Qiita

もっとうまいやり方誰か教えてください( ꒪⌓꒪)

http://qiita.com/yuroyoro/items/9358cd25b5f7fe9dd37f

本当はプロセスの生死と共にパイプが閉じられないといけないので io.Pipe ではなく Cmd.StdoutPipe を使った方がよい。ただしコード量はもう少し多くなる。確かに毎回書くのはダルいのでパッケージを作った。

mattn/go-pipeline - GitHub
https://github.com/mattn/go-pipeline

これを使うと簡単にコマンドパイプラインが扱える。

package pipeline

import (
    "fmt"
    "log"
)

func ExampleCommandPipeLine() {
    out, err := Output(
        []string{"git""log""--oneline"},
        []string{"grep""first import"},
        []string{"wc""-l"},
    )
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(string(out))
    // Output:
    // 1
}

よろしければどうぞお使い下さい。

Posted at by | Edit


blog comments powered by Disqus