使用Ruby将来自不同文件的数据随机连接到单个文件中

时间:2016-12-20 09:08:33

标签: ruby

为了从一个文件中随机加载行,我们使用以下代码:

# script.rb
X = 20  # no of lines needed
Y = 5   # no of words in each line
a = STDIN.readlines
X.times do
  b = []
  Y.times do
    b << a[rand(a.size)].chomp
  end
  puts b.join(",")
end

通过以下方式执行:

ruby script.rb < input.txt > output.txt

我现在有两个文件Name.txt(其中包含一个名称列表)和Phone.txt(其中包含一个电话号码列表)。 我想从Name.txt中随机取一个名字,从Phone.txt随机取一个号码并将它们(用逗号分隔的姓名和电话号码)合并到一个新文件中。

如何使用Ruby?

输出内容应为此格式

name1,phoneno1
name2,phoneno2

依旧......

1 个答案:

答案 0 :(得分:0)

给定文件Name.txt

foo
bar
baz

和文件Phone.txt

123
456
789

这样的事情会起作用:

# combine.rb
names = ARGF.file.readlines
ARGF.skip
phone_numbers = ARGF.file.readlines

5.times do
  puts "#{names.sample.chomp},#{phone_numbers.sample.chomp}"
end

这假定您将文件名作为参数传递:

$ ruby combine.rb Name.txt Phone.txt
baz,456
baz,789
bar,123
foo,789
baz,123