4

我从外壳中得到一串几行。是否有可能得到一个Array每行都是它的元素?

4

2 回答 2

9

当然,根据输出,您可以将其拆分。例如:

lines = `ls`.split

此解决方案独立于您用于执行程序的方法。只要你得到完整的字符串就可以split了。

于 2013-03-26T10:35:17.690 回答
6

最初的问题是按行拆分split,默认情况下,该函数在空白处拆分。虽然这可能就足够了,但您可能希望传入正则表达式,如下所示:

`ls -l`.split(/$/)

它返回数组中单独元素中的每一行。但是,它并没有摆脱最初的回车或换行。为此,您将需要使用该map函数来迭代数组并应用于strip每个数组,如下所示:

`ls -l`.split(/$/).map(&:strip)
于 2015-03-16T18:38:51.930 回答