即使手动执行,golang命令也不起作用

艾略特·拉森(Elliot Larson):

我正在尝试awk在go程序中执行命令(awk命令从加利福尼亚邮政编码的制表符分隔文件中提取指定城市(在这种情况下为San Francisco)的邮政编码):

cmd := exec.Command(
    "awk",
    "-F",
    "'\\t'",
    "'{if ($4 == \"SAN FRANCISCO\") print $0; }'",
    "zipcodes_ca.txt",
)
fmt.Println(cmd.Args)

var out bytes.Buffer
var stderr bytes.Buffer
cmd.Stdout = &out
cmd.Stderr = &stderr

err := cmd.Run()
if err != nil {
    fmt.Println(fmt.Sprint(err) + ": " + stderr.String())
    return
}

输出:

[awk -F '\t' '{if ($4 == "SAN FRANCISCO") print $0; }' zipcodes_ca.txt]
exit status 2: awk: syntax error at source line 1
 context is
         >>> ' <<<
awk: bailing out at source line 1

如果我从命令中获取打印的参数,并将其作为命令运行,awk -F '\t' '{if ($4 == "SAN FRANCISCO") print $0; }' zipcodes_ca.txt它将起作用。但是,通过我的go程序运行它似乎有问题。我不确定我在做什么错。我猜我在错误地进行转义,但是我尝试的任何方法似乎都没有效果。

亚历克斯·吉特曼:

我认为您不需要在参数周围使用单引号。它们是使用shell的产物,可防止shell解释自变量内容。尝试没有它们。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

手动刷新或编写时,React-router网址不起作用

当我在mongodb中手动设置_id时,@ CreatedDate不起作用

当手动分配ID时,Spring Data MongoDB注释@CreatedDate不起作用

Spring-手动创建组件时@Async不起作用

手动创建的global.asax.cs文件不起作用

手动屏幕跟踪在Firebase(iOS)中不起作用

Bootstrap Datepicker设置日期手动不起作用

Popover手动单击外部关闭:在Safari中不起作用

来自手动标记的Span的ENT_TYPE模式不起作用

HTML JS手动表单验证不起作用

手动加载主可执行程序集时剪贴板不起作用

计数器不起作用,但通过手动输入起作用

手动键入时,Linux Shell命令有效。放入脚本文件时不起作用

手动创建的scilab启动器不起作用

手动编号分页在wordpress模板文件中不起作用

在Eclipse中手动导入项目不起作用?

手动添加像这样的Facebook,共享计数不起作用

HTML Textarea-手动输入的新行(/ n)不起作用

通过Runtime.exec()执行时命令失败,但在Raspberry Pi(Linux)上手动执行时命令起作用

通过crontab任务移动文件不起作用,但是如果手动执行则可以工作

Windows 更新给出错误 80070002 和手动更新不起作用如何更新?

Htaccess 手动插入的链接不起作用

手动触发作业不起作用

在 Cron 中调用命令不起作用,但如果手动运行则有效

模板化手动析构函数调用不起作用

Powershell 命令手动工作,但在 Jenkins 中执行时不起作用

Rest POST 在 CRON 任务中不起作用(它适用于手动 rake 命令)

Dockerfile 不起作用 - 手动运行命令有效,但通过运行或入口点的相同命令不起作用

手动创建的公式似乎不起作用……但为什么呢?