テキストファイルをランダムに並べ替えたい。すぐ思い浮かぶのは、ランダムな数値を先頭フィールドに追加してソート、そのあと数値フィールドを削除、というもの。ただ、やりがちなのは (そしてたいていの場合、それで済むのだが (そのときに応じて使い捨てるのがワンライナーってもんだ))、フィールド数を仮定したワンライナー。 たとえば、フィールド数が 2 のときには、 [takeyuki@sunya pbird]$ cat tmp1.txt | while read x y; do echo -e "$RANDOM\t$x\t$y"; done | sort | cut -f 2- のようになる。 フィールド数に依存しない方法を awk で書いてみた。のだが、↑のワンライナーを書いているうちに、awk を使わずに済む方法も見つけてしまった。まあよい。まずは awk 版。 [takeyuki@sunya