乱数を使ってランダムに並べ直す
データの順番をランダムに変えたいということがありませんか? そんなときはいつも,エXXXなどの表計算ソフトを起動して,乱数を付加して並べ替えをして・・・というようなことをしていました.ところが表計算ソフトが手元にないことがあり,困ったのでスクリプトを書いてみました.作業ファイル temp.xxx は自動的に削除したかったのですが,私の力ではできませんでした.
# random sort
BEGIN {
FS=","
OFS=","
split(ARGV[1], f, ".")
outfile = f[1]".rs1"
srand()
}
{
print rand()","$0 | "sort > temp.xxx"
printf("%d\r",NR)
}
END {
print ""
close("sort > temp.xxx")
i++
while (getline < "temp.xxx" > 0) {
$1 = ""
sub("^\,", "", $0) # 行番号を削除する
print $0 > outfile
printf("%d\r",NR)
}
print ""
print "" > "temp.xxx"
}
パラグラフ型のデータを乱数を使ってランダムに並べ直す
JGAWKホームページに戻る