行のシャッフル

30分プログラム、その645。行をシャッフルするワンライナー

今日、アンケート結果を誰がどう答えたかを分かりづらくするために、CSVから項目を取り出してシャッフルして出力するスクリプトを書きました。

せっかくだし、そこからシャッフルする部分だけを取り出して、行単位でシャッフルするコマンドを作っておきましょう。

最初は普通にファイルに書いてましたが、途中でワンライナーで十分なことに気がついたので切替えました。

使い方

$ gseq 1 10 | perl '-MList::Util qw(shuffle)' -e 'print shuffle <>'
1
3
10
7
6
8
9
4
5
2

ソースコード

一応、複数行バージョンも貼っておきますね。

#! /usr/bin/perl
# -*- mode:perl; coding:utf-8 -*-
#
# shuffle.pl -
#
# Copyright(C) 2009 by mzp
# Author: MIZUNO Hiroki / mzpppp at gmail dot com
# http://howdyworld.org
#
# Timestamp: 2009/08/21 20:35:41
#
# This program is free software; you can redistribute it and/or
# modify it under MIT Lincence.
#
use strict;
use warnings;
use Data::Dumper;
use List::Util qw(shuffle);

print shuffle <>;