我正在为一个项目创建一个简单的
shell,我希望像在
Bash中一样解析参数字符串.
foo bar "hello world" fooz
应该成为:
["foo","bar","hello world","fooz"]
等等.到目前为止,我一直在使用CSV :: parse_line,将列分隔符设置为“”和.compacting输出.问题是我现在必须选择是否要支持单引号或双引号. CSV不支持多个分隔符.
Python有一个模块,正好称为shlex:
>>> shlex.split("Test 'hello world' foo") ['Test','hello world','foo'] >>> shlex.split('Test "hello world" foo') ['Test','foo']
是否有任何隐藏的内置Ruby模块可以做到这一点?任何解决方案的建议将不胜感激.
解决方法
Ruby有模块
Shellwords
:
require "shellwords" Shellwords.shellsplit('Test "hello world" foo') # => ["Test","foo"] 'Test "hello world" foo'.shellsplit # => ["Test","foo"]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。