プロジェクト用の単純なシェルを作成しています。引数文字列を Bash と同じように解析したいと考えています。
foo bar "hello world" fooz
次のようになる必要があります。
["foo", "bar", "hello world", "fooz"]
CSV::parse_line
など。これまでのところ、列区切り記号を に設定して出力" "
を.compact
ing して使用してきました。問題は、一重引用符と二重引用符のどちらをサポートするかを選択しなければならないことです。CSV
複数の区切り文字をサポートしていません。
Python には、まさにこのためのモジュールがあり、次のように呼ばれshlex
ます。
>>> shlex.split("Test 'hello world' foo")
['Test', 'hello world', 'foo']
>>> shlex.split('Test "hello world" foo')
['Test', 'hello world', 'foo']
これを行うことができる隠しRubyモジュールはありますか? 解決策の提案をいただければ幸いです。