Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ruby中按姓氏订购电子邮件地址文件?_Ruby_File_Sorting - Fatal编程技术网

在ruby中按姓氏订购电子邮件地址文件?

在ruby中按姓氏订购电子邮件地址文件?,ruby,file,sorting,Ruby,File,Sorting,我有一个逐行列出的文件: first.last@example.com first.last@example.com last@example.com... 请注意,有些地址没有名字,在这种情况下,它只是姓 如何编写一个简单的Ruby脚本来读取此文件(称之为email.txt) 然后按姓氏排序将其写回文件?将其放入文件中,例如,按姓氏排序.rb: puts IO.readlines('email.txt').sort_by { |e| e.match(/[^\.]+(?=@)/)[0].dow

我有一个逐行列出的文件:

first.last@example.com
first.last@example.com
last@example.com...
请注意,有些地址没有名字,在这种情况下,它只是姓

如何编写一个简单的Ruby脚本来读取此文件(称之为
email.txt

然后按姓氏排序将其写回文件?

将其放入文件中,例如,
按姓氏排序.rb

puts IO.readlines('email.txt').sort_by { |e| e.match(/[^\.]+(?=@)/)[0].downcase }
然后运行它:

ruby sort_by_last.rb > emails_sorted.txt

对于变量文件名 将
sort\u by_last.rb的内容设置为

puts STDIN.readlines.sort_by { |e| e.match(/[^\.]+(?=@)/)[0].downcase }
然后运行:

ruby sort_by_last.rb < email.txt > emails_sorted.txt
ruby sort\u by_last.rbemails\u sorted.txt