【问题标题】:How to parse a string in command line format in golang如何在golang中解析命令行格式的字符串
【发布时间】:2020-02-18 13:17:31
【问题描述】:

我有一些命令行字符串:

ffmpeg -i input.mp4 output.avi
ffmpeg -i "my input.mp4" output_2.api

我想将它们解析为切片:[ffmpeg, -i, input.mp4, output.avi] 和 [ffmpeg, -i, "my input.mp4", output_2.avi]。有什么稳定的方法吗?

【问题讨论】:

  • stdlib 没有为各种 shell 使用的语法提供任何特殊的东西,并且从外部库请求在 SO 上是 OT。
  • 你可以试试shlex
  • 您可以使用encoding/csv,将Comma 字段设置为空白符文,如下所示:play.golang.com/p/0b57oPG9QPD 如果原始字符串在元素之间可以有多个空格,您将需要额外覆盖切片并删除空字符串。这将适用于您在问题中提供的两个输入,但这不是一个通用的解决方案,并且很可能会在更复杂的输入上中断。

标签: go command-line


【解决方案1】:

https://github.com/google/shlex 好像符合我的要求,我试试看:)

非常感谢您的支持!

-- 克劳斯

【讨论】:

    猜你喜欢
    • 2011-09-08
    • 2016-07-30
    • 1970-01-01
    • 2019-09-04
    • 2016-03-19
    • 1970-01-01
    • 2013-11-14
    • 1970-01-01
    相关资源
    最近更新 更多