从文件逐行读取数据的方法有两种,一种是在while循环或until循环中使用read命令,通过文件描述符一行一行的读取文件内容;另一种是在for循环中使用cat <filename>来读取文件的内容。
1.使用for循环从文件中逐行读取内容:在默认情况现下此方法是逐个单词的读取文件内容,因为使用这种方法读取文件时,他使用环境变量IFS的值作为分隔符,由于IFS的默认值是“<space/空格>”“<tab/制表符>”“<newline/新行>”,所以他首先以空格作为分隔符来读取文件内容,因此如果使用for循环逐行读取内容,在for循环开始之前需要先修改变量IFS的值,等for循环结束后再将IFS的值改回来。
示例1:
#!/bin/bash bak=$IFS #定义一个变量bak保存IFS的值 if [ $# -ne 1 ];then #判断位置参数是否为1 echo "Usage $0 filename" exit fi if [ ! -f $1 ];then #判断位置参数是否为文件 echo "the $1 is not a file" exit fi IFS=$'\n' #将环境变量IFS的值修改为换行符 for i in `cat $1` #逐行读取文件内容并打印到屏幕 do echo $i done IFS=$bak #将环境变量IFS的值改回原值
示例2:如果不修改变量IFS的值,系统默认按照IFS的原值,按空格来读取文件
#!/bin/bash if [ $# -ne 1 ];then echo "Usage $0 filename" exit fi if [ ! -f $1 ];then echo "the $1 is not a file" exit fi for i in `cat $1` do echo $i done
2.在脚本中定义代码块,使用重定向逐行读取文件内容:
示例:
#!/bin/bash if [ $# -ne 1 ];then #判断脚本参数是否为1 echo "Usage:$0 filename" exit 1 fi file=$1 #将脚本参数参数赋值给变量file { #定义代码块,大括号{}中的代码即为代码块 read line1 read line2 } <$file #使用$file将代码块的标准输入指向文件$file echo "first line in $file is $line1" #输出文件内容 echo "second line in $file is $line2" exit 2
3.使用while循环结合read命令逐行读取文件内容:
#!/bin/bash if [ $# -ne 1 ];then echo "Usage:$0 filename" exit 1 fi file=$1 if [ ! -f $file ];then echo "the $file is not a file" exit 2 fi count=0 while read line #使用read命令循环读取文件内容,并将读取的文件内容赋值给变量line do let count++ echo "$count $line" done <$file #“done <$file”将整个while循环的标准输入指向文件$file echo -e "\ntotle $count lines read" exit 0
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
2025年01月23日
2025年01月23日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]