草庐IT

媒体管道类

全部标签

go - 如何将 exec.Command 的输出通过管道传输到 Golang 中的另一个命令

我有八个MicrosoftAccess数据库,每个数据库都有大约215个表,我需要将这些数据库传输到postgresql,所以我使用mdb-tools并导出方案,这只是一步;但是当涉及到直接将表数据导出到postgres时在postgresql中,我必须为每个表编写此命令:mdb-export-Ipostgres-q\'myaccessdatabase.mdbtable-name|psql-dmypsqldatabase-Upostgres-w-hlocalhost所以我一直在尝试编写一个go命令程序来做如下:1.首先执行命令列出表名。这将是下一个命令的参数。2.然后开始forrang

bash - Golang exec.Command 多个管道

我正在尝试用Go做多个管道:ctags:=exec.Command("ctags","-x","--c-types=f","./tmp/"+fileName)grep:=exec.Command("grep","member")awk:=exec.Command("awk","'{$1=$2=$3=$4=\"\";print$0}'")grep.Stdin,_=ctags.StdoutPipe()awk.Stdin,_=grep.StdoutPipe()awk.Stdout=os.Stdout_=grep.Start()_=awk.Start()_=ctags.Run()_=grep.

go - 在 Bitbucket 管道中交叉编译 Golang

我正在尝试配置BitbucketPipelines以自动将Golang代码编译到Linux、OSX和Windows。我为此使用了Go的交叉编译功能;流水线运行Linux环境,通过设置GOOS和GOARCH的值交叉编译到OSX和Windows。但是,我无法让Windows构建正常工作-它出错并告诉我它找不到某个包。Linux和OSX构建均成功。但是,Windows构建失败,告诉我它找不到/go/src/github.com/sirupsen/logrus/hooks/syslog。之前的两个构建都成功地使用了这个包,并且运行了这两个ls/go/src/github.com/sirupse

mongodb - mongodb 管道查询 $project 中的错误应该是什么?

我正在mongodb集合中传输我的数据,但它不会向我返回任何数据,代码如下:-funcGetLog(c*gin.Context){values:=c.Query("value")fmt.Println("value",values)result:=[]bson.M{}mongoSession:=config.ConnectDb()getCollection:=mongoSession.DB(config.Database).C(config.LogCollection)pipe:=getCollection.Pipe([]bson.M{bson.M{"$unwind":"$bookin

go - 管道多个命令然后写入文件

我正在尝试通过管道传输多个*exec.Cmd,然后写入文件。当我尝试使用一个cmd并输出到文件时,它会写入文件。但是,当我尝试使用多个命令并输出到文件时,它没有。但是exec.Cmd似乎正在管道化,因为它可以正确地输出。outfile,err:=os.Create("./out.txt")iferr!=nil{panic(err)}deferoutfile.Close()c1:=exec.Command("sh","-c","whilesleep1;doechotest;done")c1.Stdout=outfile_=c1.Run()for{}上面的代码每隔一秒写入一次文件。但是当我

go - 如何实现 goroutines 的管道?

我需要一些帮助来了解如何使用管道将数据从一个goroutine传输到另一个goroutine。我读了golangblogpostonpipeline,我理解了但不能完全付诸行动,因此想到向社区寻求帮助。现在,我想出了这个丑陋的代码(Playground):packagemainimport("fmt""sync""time")funcmain(){wg:=sync.WaitGroup{}ch:=make(chanint)fora:=0;a问题我想使用管道或任何正确的方式来做这件事。此外,博文中显示的管道不适用于goroutines,因此我无法自己完成。在现实生活中,func1和func

go - 匿名结构作为模板中的管道

有没有办法在html/template中执行以下操作?{{template"mytemplate"struct{Foo1,Foo2string}{"Bar1","Bar2"}}}实际上在模板中,如上。不是通过在返回结构的FuncMap中注册的函数。我试过了,但是Parse崩溃了,seePlayground.也许只是语法错误? 最佳答案 正如其他人所指出的,这是不可能的。模板在运行时解析,无需Go编译器的帮助。因此,允许任意Go语法是不可行的(尽管请注意,这并非不可能,因为标准库包含解析Go源文本的所有工具,请参阅标准库中“前缀为”g

go - 如何使用适用于 Windows 的 GitLab 管道进行构建

我有以下.gitlab-ci.yml...stages:-test-build-artimage:golang:1.9.2variables:BIN_NAME:exampleARTIFACTS_DIR:artifactsGO_PROJECT:exampleGOPATH:/gobefore_script:-mkdir-p${GOPATH}/src/${GO_PROJECT}-mkdir-p${CI_PROJECT_DIR}/${ARTIFACTS_DIR}-goget-ugithub.com/golang/dep/cmd/dep-cp-r${CI_PROJECT_DIR}/*${GOPA

multithreading - 如何在管道中同步 goroutines

我需要帮助才能理解为什么以下代码不起作用。我正在构建一个管道并尝试有一个步骤来同步来自两个源channel的值。我的源代码/生产者代码如下所示(在我的真实代码中,我从文件中读取文本)。源已排序,但不能保证两个源中的值都存在。funcSource()同步代码如下所示:funcSync(a,bav{out我的程序看起来像这样:funcmain(){os:=Source()ns:=Source()forval:=rangeSync(ns,os){fmt.Printf("[SYNCED]%v\n",val)}}预期的行为是我的两个源将值缓冲到channel中,我的同步首先从第一个源读取值。然后

mongodb - 如何将 exec 函数的标准输出通过管道传递给另一个函数的读取器?

我正在尝试将标准输出从mongodump流式传输到s3。我已经正确掌握了S3任意长度流的语法,但我不明白如何将这两个函数结合起来。我不想在开始上传到S3之前处理整个mongodump命令。这是我目前所拥有的:dumpCmd:=exec.Command("mongodump","--host","","--port","","--archive")dumpCmd.Stdout=os.Stdoutuploader:=s3manager.NewUploader(session.New(&aws.Config{Region:aws.String("us-east-1")}))result,er