Golangで受け付けた標準入力を一時ファイルにコピーする

Golangで、受け付けた標準入力(stdin)を、一時ファイルにコピーしたいことがあったので、備忘として残しておく。
一時ファイル(tmpファイル)については ioutil.TempFile()で、一時ファイルへのコピーについてはio.Copy()で行える。以下、実行例。

●stdinCp.go

package main

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

func main() {
stdinTemp, err := ioutil.TempFile("", "test")
if err != nil {
panic(err)
}

fmt.Println(stdinTemp.Name())
io.Copy(stdinTemp, os.Stdin)
}
[blacknon@blacknon-ThinkPad-X201]% ~(`・ω・´)  < echo aaa | ./stdinCp 
/tmp/test765158669
[blacknon@blacknon-ThinkPad-X201]% ~(`・ω・´)  < cat /tmp/test765158669 
aaa

 


Written by blacknon

インフラエンジニア(…のつもり)。 仕事で使うならクライアントはWindowsよりはUNIXの方が好き。 大体いつも眠い。

Leave a Comment

メールアドレスが公開されることはありません。

*