ゲンゾウ用ポストイット

Java、Groovy、Linux関連の備忘録

1から100までの数列から、ランダムに10個の数値をピックアップする

背景

テストデータの中からランダムにデータをn件(例えば10件)、ピックアップしたかった。

調査環境

$ uname -a
Darwin genzouw-macbook-pro.local 13.2.0 Darwin Kernel Version 13.2.0: Thu Apr 17 23:03:13 PDT 2014; root:xnu-2422.100.13~1/RELEASE_X86_64 x86_64 i386 MacBookPro10,1 Darwin

$ bash -version
GNU bash, version 3.2.51(1)-release (x86_64-apple-darwin13)
Copyright (C) 2007 Free Software Foundation, Inc.

調査

echo $((RANDOM%100+1))

とすると1から100までのランダムな値が取得はできるが、同じものが取得されることがある。
(ex: 1 99 3 53 1 5 20 19 80 100 )

結果

以下のワンライナーで実現可能。

seq 1 100| shuf| head -n 10

ひとこと

実際にはテストデータファイル data.txt からデータをピックアップする必要があったため、以下のような使い方をした。

cat data.txt| shuf| head -n 10

そこそこ便利。