2011-03-28 82 views
1

enter code here這是一個單線程來隨機化STDIN,其目的是提供一個文件列表和尾巴-N給你N個大列表中的隨機數(大於N):更好的執行命令行隨機化與紅寶石

ruby -e 'arr=[]; ARGF.each {|line| arr << line}; puts arr.sort_by {rand}' 

我想知道是否有更短的版本。

獲獎者是:

find . -type f | ruby -e 'puts ARGF.sort_by {rand}' 

回答

3

如何:

ruby -e 'puts ARGF.sort_by{rand}' 
+0

這似乎並沒有工作......「E:1:'each_line‘:私有方法'蘭特’呼籲」 ./「」 – Istvan 2011-03-28 22:26:16

+0

你怎麼叫它? – 2011-03-28 22:28:51

+0

你的意思是:ruby -e'放ARGF.sort_by {rand}',是的! :) – Istvan 2011-03-28 22:31:08

1

這你在找什麼?

ruby -e 'p ARGF.to_a.sample' 
+0

我需要隨機列表我在STDIN上獲得的內容,請參閱上面的示例 – Istvan 2011-03-28 22:33:02

0

誰需要stdin?

Dir["*"].select {|v| v if File.file?(v)}.sort_by {rand} 
+0

我需要................. :) – Istvan 2011-03-29 08:47:31