go - 如何将终端中的 go 程序的输出通过管道传输到另一个程序?
问题描述
我想对 go 程序产生的输出运行 grep。使用其他语言,我可以轻松做到。例如:java 测试 | grep 世界
即使将输出重定向到文件似乎也不起作用,并且创建的文件是空的,终端仍然打印输出。
package main
func main() {
println("One")
println("Hello")
}
预期的:
go build test.go
./test | grep 'el'
Hello
实际的:
go build test.go
./test | grep 'el'
One
Hello
解决方案
我发现了我的错误。
来自 println 文档:
println 内置函数以特定于实现的方式格式化其参数并将结果写入标准错误。
因此,它不会在标准输出上输出。要打印到标准输出,可以使用 fmt.Println 代替。
推荐阅读
- python - 如何将固定的 subplot2grid 排列的倍数绘制成一个图形?
- python - 当 Pandas 在多个带有颜色标签的子图中创建散点图时,无法设置 xlabel
- javascript - Need mmenu to react differently on desktops and mobile devices
- css - MaterializeCSS collapsible with IMAGE
- npm - 找不到模块“指挥官”
- algorithm - 堆栈是否是数据结构?
- git - Libgit2sharp, Pushing a specific branch to new remote
- angular - 使用 Content-Type multipart/form-data 上传 IFormFile 时缺少内容类型边界
- python - Overloading validate in cerberus
- java - txt文件中单词与单词的比较及同音异义的方法