Linuxコンソール上で、指定したファイルからランダムに行を取得させたい時がある。
そんなときは、shufコマンドを用いれば良い。

以下のようにコマンドを実行することで、指定されたファイルからランダムに「-n N」で指定したN行を抽出する。

shuf -n N ファイルPATH

[root@BS-PUB-CENT7-01 ~]# shuf -n 1 /tmp/test1.csv
9,iii,3,12
[root@BS-PUB-CENT7-01 ~]# shuf -n 1 /tmp/test1.csv
id,name,prefecture,value
[root@BS-PUB-CENT7-01 ~]# shuf -n 1 /tmp/test1.csv
6,fff,1,444
[root@BS-PUB-CENT7-01 ~]#
[root@BS-PUB-CENT7-01 ~]# shuf -n 3 /tmp/test1.csv
3,ccc,1,65745
8,hhh,4,111
id,name,prefecture,value
[root@BS-PUB-CENT7-01 ~]# shuf -n 3 /tmp/test1.csv
2,bbb,2,544
id,name,prefecture,value
7,ggg,3,566
[root@BS-PUB-CENT7-01 ~]# shuf -n 3 /tmp/test1.csv
7,ggg,3,566
11,ddd,1,4423
10,bbb,2,1243