曲径通幽论坛

标题: 随机读取文本中的某行的内容 [打印本页]

作者: beyes    时间: 2011-4-29 09:52
标题: 随机读取文本中的某行的内容
获得随机数常用的方法是通过 $RANDOM 变量获得,下面的例子结合这个变量随机获取一个文本中的行数。

[Bash shell] 纯文本查看 复制代码
 
#!/bin/sh
for n in $(seq 1 10); do
        line=`echo $[$RANDOM % 20]`
        cat tz.txt |head -n $line |tail -n 1
done

上面我们随机输出文本文件 tz.txt 中某行的内容。seq 命令可参考:http://www.groad.net/bbs/read.php?tid-3470.html

head -n $line 是获得前面的第几行,然后再通过 tail -n 1 获得这几行中的最后一行,就是我们要读取的某一行($line)。

比如脚本输出:
[root@centos shell]# sh random.sh
唉,怎么说呢
万法皆空~
嗯,确实是这样的啊~
今天就这样吧
呵呵,好像挺有道理的
呵呵,好像挺有道理的
绝对支持你!
今天就这样吧
算了,还是不说了
进来看下啥情况

因为 tx.txt 中一共有 26 行,所以为了得到更好的输出分布,所以脚本中要对 20 求余。

这个脚本有真么作用?
呵呵,想象一下,可以先制作成一个灌水辞典,然后使用自动 POST 的脚本来达到一个随机灌水的目的。关于灌水用的工具,首选 curl ,可以参考文章:
http://www.groad.net/bbs/read.php?tid-838.html




欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2