【Shell】按行讀取文件內容


方法1:while循環中執行效率最高,最常用的方法。

function while_read_LINE_bottm(){
While read LINE
do
echo $LINE
done  < $FILENAME
}
#!/bin/bash
while read line
do
echo $line
done < filename(待讀取的文件)

 

注釋:習慣把這種方式叫做read釜底抽薪,因為這種方式在結束的時候需要執行文件,就好像是執行完的時候再把文件讀進去一樣。

 

方法2 : 重定向法;管道法: cat $FILENAME | while read LINE

Function While_read_LINE(){
cat $FILENAME | while read LINE
do
echo $LINE
done
}
#!/bin/bash
cat filename(待讀取的文件) | while read line
do
echo $line
done

注意這邊如果是運行sh腳本的時候 頭部要改成sh

我只所有把這種方式叫做管道法,相比大家應該可以看出來了吧。當遇見管道的時候管道左邊的命令的輸出會作為管道右邊命令的輸入然后被輸入出來。

 

方法3: 文件描述符法

Function while_read_line_fd(){
Exec 3<&0
Exec 0<$FILENAME
While read LINE
Do
Echo $LINE
Exec 0<&<3
}

這種方法分2步驟,第一,通過將所有內容重定向到文件描述符3來關閉文件描述符0.為此我們用了語法Exec 3<&0 。第二部將輸入文件放送到文件描述符0,即標准輸入。

 

方法4 :    for  循環

for line in `cat filename(待讀取的文件)`
do
echo $line
done

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM