Shell脚本循环读取文件中每一行,可以逐行读取

3,272 阅读1分钟

读取的文本如下:

第一列IP地址 第二列备注信息
192.168.20.1 我的电脑
192.168.20.102 Apple
192.168.20.105 测试

使用for循环

  1. 方法一
FILE_NAME="demo.txt"; 
for line in `cat ${FILE_NAME}`
do 
    echo "一行的内容是:" $line
done 

for循环实例.png 2. 方法二

FILE_NAME="demo.txt"; 
for line in $(cat ${FILE_NAME)
do 
    echo "一行的内容是:" $line
done 

for循环实例2.png

利用while循环

FILE_NAME="demo.txt"; 
while read -r line 
do
    echo '一行的内容是:' $line
done  < $FILE_NAME

while实例.png

FILE_NAME="demo.txt"; 
cat $FILE_NAME | while read -r line 
do
    echo '一行的内容是:' $line
done  

while实例.png

小结

  1. 使用for是以空格作为分隔的。
  2. 使用while是一行一行输出的,遇到空行还是会输出的。