這篇文章主要使用Shell腳本循環讀取文件每一行內容的方法總結;
1.使用while循環,效率最高,最常用的方法
while read -r line
do
echo $line
done < filename
2.利用for循環的方法
for line in `cat filename`
do
echo $line
done
或
for line in $(cat filename)
do
echo $line
done
While循環中read命令從標准輸入中讀取一行,並將內容保存到變量line中。在這里,-r選項保證讀入的內容是原始的內容,意味着反斜杠轉義的行為不會發生。輸入重定向操作符< file打開並讀取文件file,然后將它作為read命令的標准輸入。
3.重定向管道法
cat filename | while read line
do
echo $line
done
4.文件描述符法
exec 3<&0
exec 0< $FILENAME
while read LINE
do
echo $LINE
done
exec 0<&3
此方法分為兩步,第一,通過將所有內容重定向到文件描述符3來關閉文件描述符0.第二步將輸入文件放送到文件描述符0,即標准輸入。