LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 764|回复: 5

一个文本,对于行的打乱不知如何做[征集各种方案]

[复制链接]
发表于 2004-5-13 15:57:00 | 显示全部楼层 |阅读模式
问题很简单,就是一个文本,里面有万行记录,把行打乱就可以,不知怎么做?
发表于 2004-5-13 16:05:12 | 显示全部楼层
发表于 2004-5-13 21:14:17 | 显示全部楼层

  1. #!/bin/ksh
  2. index=1
  3. #bash: array=$(while((index<=$(cat filename|wc -l)));do
  4. #       echo "$index $RANDOM"
  5. #        ((index+=1))
  6. #done|sort -k2n|cut -f1 -d' ')
  7. set -A array $(while((index<=$(cat d|wc -l)));do
  8.         echo "$index $RANDOM"
  9.         ((index+=1))
  10.         done|sort -k2n|cut -f1 -d' ')
  11. for i in ${array[*]};do
  12.         awk 'NR=='$i'' filename
  13. done
复制代码

ps:效率低了些~,;)
 楼主| 发表于 2004-5-14 08:31:38 | 显示全部楼层
我自己写了一个比较简单的
#!/usr/bin/php -q
#filename random.php
<?php
$exec=0;
$filename="code.txt";

$farr=file($filename);
srand ((float)microtime()*1000000);
shuffle ($farr);
while (list (,$number) = each ($farr)) {
    echo $number;
}


?>

然后直接./random.php > output.txt  就可以了,嘻嘻
 楼主| 发表于 2004-5-14 08:39:26 | 显示全部楼层
虽然办法笨了点,10万行的记录用掉16M内存,不过效率还行
发表于 2004-5-14 23:17:07 | 显示全部楼层
最初由 yggdrasil 发表
虽然办法笨了点,10万行的记录用掉16M内存,不过效率还行

呵呵,php脚本不懂~ ,不过看着确实很不错 :thank
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表