利⽤Shell脚本循环读取⽂件中每⼀⾏的⽅法详解
前⾔
本⽂主要给⼤家介绍了关于使⽤Shell脚本循环读取⽂件每⼀⾏的相关内容,分享出来供⼤家参考学习,下⾯话不多说了,来⼀起看看详细的介绍吧。
⼀、使⽤for循环
for line in `cat filename`
do
echo $line
done
或者
for line in $(cat filename)
do
echo $line
done
⼆、使⽤while循环
while read -r line
do
echo $line
done < filename
While循环中read命令从标准输⼊中读取⼀⾏,并将内容保存到变量line中。在这⾥,-r选项保证读⼊的内容是原始的内容,意味着反斜杠转义的⾏为不会发⽣。输⼊重定向操作符< file打开并读取⽂件file,然后将它作为read命令的标准输⼊。
今天遇到⼀个问题弄了好久才搞明⽩:我想在循环中动态链接字符串,代码如下:
for line in `cat filename`
shell代码
do
echo ${line}XXYY
done
就是在每⼀次循环过程中给取出来的字符串后⾯添加“XXYY”字符,但是程序就是运⾏不出来正确的结果。
后来发现是因为我的⽂件是才Window下⽣产的,在Linux下读取这样的⽂件由于换⾏符的不同会导致程序运⾏不出来正确的结果。
解决办法:在linux安装dos2unix⼩⼯具,经过该⼯具转化以后的⽂件再进⾏读取就没有问题了。
总结
以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作能带来⼀定的帮助,如果有疑问⼤家可以留⾔交流,谢谢⼤家对的⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。