shell脚本随机输出一个文件的25行
2013-04-02 14:14
399 查看
前言
好久没写shell脚本了,今天看到群里有这么一个需求,截图如下:我也是复习一下shell脚本,就顺手写了个程序测试了一下,基本上通过了
思路
首先,用shell脚本按行读取文本,将每一行存入一个数组中每次选择一个随机数,来从数组中取数据
注意,不能是重复的行,所以随机数有标记字段
Shell脚本
#!/bin/bash #文件位置 file="./test.txt" #计数器 i=0 #按行读取文件内容,存入arr数组中 for line in $(awk '{print $0}' $file) do arr[$i]=$line i=$(expr $i + 1) done #构造随机数数组,假定文件只有100行,当random[i]=0时说明第i行没有被读取 for i in $(seq 1 100) do random[$i]=0 done #构造随机数,随机选取25行 for ((i=0; i<25;)) do index=$RANDOM%100 if [ ${random[$index]} -eq 0 ]; then random[$index]=1 echo ${arr[$index]} i=$(expr $i + 1) fi done
后记
欢迎大家跟帖讨论,经常熟悉一下语言,才不至于生疏!相关文章推荐
- shell脚本随机输出一个文件的25行
- 编写一个SHELL脚本,可以获得指定目录下的所有文件及文件夹的大小。输出的样式与 ls -lh 命令相同。
- linux、shell脚本实例一“查找一个文件或者目录 找到了提示 没找到则输出未找到”
- 执行系统命令并且将输出写到指定日志文件的shell脚本(2)
- shell读取脚本同一个目录下的xml格式的文件
- SHELL脚本--用于检测一个或者多个对象是文件或者目录
- shell脚本:一次读取文件的一行,并输出
- shell脚本监控Flume输出到HDFS上文件合法性
- 随机生成三个数组合成一个百位数_shell脚本
- 编写一个shell命令脚本来交叉编译.c文件,代替Makefile
- shell脚本实现将文件中的几行输出合并成一行显示
- shell脚本:一次读取文件的一行,并输出
- shell 脚本中将输出内容赋值给一个变量时不换行
- shell脚本获取一个文件的行数赋值给变量
- Linux系统的rm命令太危险,一不小心就会删除系统文件。写一个shell脚本来替换系统的rm命令,
- Linux下使用Shell脚本向FTP服务器上传或下载一个文件
- shell脚本,根据时间范围压缩时间目录成一个文件
- 用shell脚本获取一个github项目所有文件的历史信息
- shell脚本如何从json文件读取一个某个值
- shell脚本下用代码段把输入全部重定向到一个文件