通过awk在Linux下打乱文件内容的顺序
假设一个文件是已经排好序的,现随机抽取里面的部分。为了达到随机性,需要对文件打乱顺序后再抽取
[root@localhost tmp]# for i in {1..10}; do echo "$RANDOM $RANDOM $RANDOM"; done | sort -n > t[root@localhost tmp]# cat t129 32444 4962149 19841 33072327 21849 30664138 28425 212015076 20742 202111646 4268 1811216553 16363 621821182 8495 2653324534 8485 2498729942 1816 4658[root@localhost tmp]# awk 'BEGIN{10000*srand();} {printf "%s %s\n", rand(), $0}' t | sort -k1n | awk '{gsub($1FS,""); print $0}'11646 4268 181124138 28425 212015076 20742 202121182 8495 26533129 32444 4962149 19841 33072327 21849 306624534 8485 2498716553 16363 621829942 1816 4658[root@localhost tmp]#