将输入粘贴到具有多个回车符的命令行

时间:2016-08-09 18:49:47

标签: ruby ruby-on-rails-3

我是ruby的新手,并编写了一个程序,它接受几行数据(实际上是一个JSON)并将其转换为命令行中的表。使用程序中嵌入的JSON数据一切正常,但我想让它提示用户将数据粘贴到命令行中。我知道getschomp,但由于JSON格式化为多行/回车,因此当我粘贴在命令行中时,它将每行作为单独的条目。我觉得答案很简单,但我很难在线查找信息。我只想让它一次性粘贴所有内容并忽略所有回车。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

如果您通过控制台获取输入,$stdin的技术说法,并且您希望接收多个独立的多线对象,则需要使用某种分隔符。

这可以像每个JSON对象之间的一个或多个空行一样简单,也可以是END--之类的标记。

这取决于您的JSON数据的格式,因为JSON对象中的空行是有效的,但大多数JSON生成器通常不会发出这些空格行。

不要忘记UNIX模型强烈建议您能够执行以下操作:

processor < input.json

或类似的事情:

processor *.json

您可以通过ARGV接收多个文件并按顺序处理这些文件。这避免了很多这样的混乱。