shell的for while读取文件写法和区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell的for while读取文件写法和区别相关的知识,希望对你有一定的参考价值。
参考技术A 常见的while和for循环的写法,大概有如下几种:while循环:会将每行的内容读入到line变量,当while出现空行,用if判断字符=0, contiun
for循环: 将读入的内容以IFS(shell中的环境变量,Internal Field Seperator,字段分隔符)为界分隔, 然后将各个分隔开的内容,逐一读入变量line。本质上说,for循环读取的是字段,只不过可以设置IFS为\n这样能够逐行读取。
如果希望for处理文件按回车分隔,则需重新定义分隔符 IFS:内部字段分隔符 IFS=$'\n'
示例1
示例2
Shell脚本——按行读取文件
按行读取文件的三种方法:
1
while read line
do
echo $line
done < filename
2
cat filename | while read line
do
echo $line
done
3
for line in $(cat filename)
do
echo $line
done
注:while逐行读取和for逐行读取有区别——while每次读取一行,for每次读取由空白分割的一部分;
$ cat file
1111
2222
3333 4444 555
$ cat file | while read line; do echo $line; done
1111
2222
3333 4444 555
$ for line in $(cat file); do echo $line; done
1111
2222
3333
4444
555
以上是关于shell的for while读取文件写法和区别的主要内容,如果未能解决你的问题,请参考以下文章