5

プロジェクト用の単純なシェルを作成しています。引数文字列を 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', 'hello world', 'foo']

これを行うことができる隠しRubyモジュールはありますか? 解決策の提案をいただければ幸いです。

4

1 に答える 1