shell 如何随机shell 一行行读取文件件的一行?

shell脚本随机输出一个文件的25行
好久没写shell脚本了,今天看到群里有这么一个需求,截图如下:
我也是复习一下shell脚本,就顺手写了个程序测试了一下,基本上通过了
首先,用shell脚本按行读取文本,将每一行存入一个数组中
每次选择一个随机数,来从数组中取数据
注意,不能是重复的行,所以随机数有标记字段
#!/bin/bash&
#文件位置&
file=&./test.txt&&
#按行读取文件内容,存入arr数组中&
for line in $(awk '{print $0}' $file)&
&&& arr[$i]=$line&
&&& i=$(expr $i + 1)&
#构造随机数数组,假定文件只有100行,当random[i]=0时说明第i行没有被读取&
for i in $(seq 1 100)&
&&& random[$i]=0&
#构造随机数,随机选取25行&
for ((i=0; i&25;))&
&&& index=$RANDOM%100&
&&& if [ ${random[$index]} -eq 0 ]; then&
&&&&&&& random[$index]=1&
&&&&&&& echo ${arr[$index]}&
&&&&&&& i=$(expr $i + 1)&
#!/bin/bash
file=&./test.txt&
#按行读取文件内容,存入arr数组中
for line in $(awk '{print $0}' $file)
&arr[$i]=$line
&i=$(expr $i + 1)
#构造随机数数组,假定文件只有100行,当random[i]=0时说明第i行没有被读取
for i in $(seq 1 100)
&random[$i]=0
#构造随机数,随机选取25行
for ((i=0; i&25;))
&index=$RANDOM%100
&if [ ${random[$index]} -eq 0 ]; then
&&random[$index]=1
&&echo ${arr[$index]}
&&i=$(expr $i + 1)使用for循环
for line in `cat filename`
echo $line
done或者for line in $(cat filename)
echo $line...
shell 按行循环读入文件常用代码如下:
#/bin/bash
printf "*************************************\n"
方法一,指定换行符读取:
#! /bin/bash
for LINE in `cat /etc/passwd`
----------------------------------------------------------------------------
----------------------------------------------------------------------------
#!/bin/bash
#!/bin/bash
echo 111111
while read line
echo $line
echo 222...
例如你有一个文件夹路径是 /wls,如果想要遍历这个文件夹内的所有文件,并将它们保存到数组中,利用shell你可以这样做for file in /wls/*
if test -f $fil...
1 ,在这里总结一下Shell读取文件的方法
#使用read命令读取一行数据
while read myline
echo "LINE:"$myline
先说一下,我用的是这个: 以下是sh文件内容********************************************#!/bin/shFILENAME="$1"cat $FILENAM...
1 -- SHELL读取文件的方法
#使用read命令读取一行数据
while read myline
echo "LINE:"$myline
done < datafile.txt
他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)shell读取文件的指定行字符串 -sed_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
shell读取文件的指定行字符串 -sed
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢相关文章推荐:
shell 读取文件的倒数10行内容
http://hi.baidu.com/7636553/item/8476a5cdd8b5bf13b67a2433
----------------------------------------------------------------------------
#!/bin/bash
while read line
echo $line
done & filename(待读取的文件)
----------...
阅读(0) 回复(0)
其他文章推荐
shell编程-文件读取
1 -- shell读取文件的方法#使用read命令读取一行数据
while read myline
echo &LINE:&$myline
done & datafile.txt#使用read命令读取一行数据
cat datafile.txt | while read myline
echo &LINE:&$myline
done#读取一行数据
cat datafile.txt | while myline=$(line)
echo &LINE:&$myline
done#读取一行数据
while myline=$(line)
echo &LINE:&$myline
done & datafile.txt#使用read命令读...
阅读(0) 回复(0)
这个程序是实习的时候,对于实际项目中对csv文件进行提取并插入数据库中的实际操作
点击(此处)折叠或打开
#!/bin/bash
#日志文件的时间格式
DATE=$(date +%Y-%m-%d)
#日志文件内部时间格式
DATE1=$(date +%c)
#判断脚本后面是否有文件名
if [ $# -eq 0 ];then
echo &Usage:$0 &iSleepTime&&
阅读(150) 回复(0)
shell读取用户输入
转自: http://blog.csdn.net/zilong00007/article/details/6681090
读取用户输入
上一章我们谈到如何定义或取消变量,变量可被设置为当前shell的局部变量,或是环境变量。如果您的shell脚本不需要调用其他脚本,其中的变量通常设置为脚本内的局部变量(参见第13.10节“变量”)。
要获取变量的值,在美元符后跟变量名即可。shell会对双引号内的美元符后的变量执行变...
阅读(0) 回复(0)
读取用户输入
上一章我们谈到如何定义或取消变量,变量可被设置为当前shell的局部变量,或是环境变量。如果您的shell脚本不需要调用其他脚本,其中的变量通常设置为脚本内的局部变量(参见第13.10节“变量”)。
要获取变量的值,在美元符后跟变量名即可。shell会对双引号内的美元符后的变量执行变量扩展,单引号中的美元符则不会被执行变量扩展。
name=&John Doe& or declare name=&John Doe&...
阅读(0) 回复(0)
今天遇到一个实际的问题,需要向系统终端一次写入多个关键词,并且实现换行,于是自己去简单看了下shell,现学现用吧,临时拼凑了一下,形成了下面的简单脚本:
点击(此处)折叠或打开
#!/bin/bash
echo &This is a shell to input multi-keywords into regexes...&
if [ -f regexes ];then
阅读(90) 回复(0)
今天遇到一个实际的问题,需要向系统终端一次写入多个关键词,并且实现换行,于是自己去简单看了下shell,现学现用吧,临时拼凑了一下,形成了下面的简单脚本:
点击(此处)折叠或打开
#!/bin/bash
echo &This is a shell to input multi-keywords into regexes...&
if [ -f regexes ];then
阅读(900) 回复(2)
1、使用grep -v &^#& 来去掉注释行,其中:-v 就是取相反的 ^# 表示注解行
grep -v &^#& /etc/vsftpd/vsftpd.conf (也可以使用“&”来重写配置文件)
2、有时也会连同空行一起去掉,使用管道符来完成(^$表示空行 )
grep -v &^#& httpd.conf | grep -v &^$& && vsftpd.conf
上面用了 2次 grep 过滤命令 ,也就是把空行和注解行过滤掉,再把剩下的内容追加保存为原来的配置文件 vsftpd.conf 这个时候就文件里的内容就没有注解行和空行...
阅读(0) 回复(0)
查找目录下的所有文件中是否含有某个字符串
find .|xargs grep -ri &IBM&
查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名
find .|xargs grep -ri &IBM& -l
1.正则表达式
(1)正则表达式一般用来描述文本模式的特殊用法,由普通字符(例如字符a-z)以及特殊字符(称为元字符,如/、*、?等)组成。
(2)基本元字符集及其含义
^ :只匹配行首。
如^a 匹配以a开头的行abc,a2e,a12,aaa,.......
阅读(90) 回复(0)
参考博客:
http://www.360doc.com/content/11/61.shtml
每份相同数据(文件夹)都可以生成一份唯一的md5校验文件,我们可以通过直接校验整个数据文件夹的方法来确定数据是否有误。
1.针对整个文件夹生成md5校验文件方法:
以data文件夹为例,我们需要得到data整个文件夹中的文件的md5校验值,我们通过shell程序对整个data文件夹中的文件进行md5校验。
通过如下命令获得整个data文件夹的m...
阅读(150) 回复(0)
一、什么是登陆shell?什么是非登陆shell?
1、登陆shell是指:
(1)用户登陆时,输入用户名和密码后启动的shell;
(2)通过带--login参数的命令:bash
--login而启动的shell。
2、非登录shell指:
用户登录后,直接运行bash命令启动的shell。
3、对于用户来说,登陆shell和非登陆shell的主要区别是:启动shell时所执行的startup文件不同。
(1)登录shell的启动文件是/etc/profile、~/.bash_profile
(2) 非登录s...
阅读(0) 回复(0)
盛拓传媒:
北京皓辰网域网络信息技术有限公司. 版权所有
北京市公安局海淀分局网监中心备案编号:
广播电视节目制作经营许可证:编号(京)字第1149号
ITPUB推荐文章解答你所有技术难题

我要回帖

更多关于 shell读取文件每一行 的文章

 

随机推荐