網(wǎng)上有很多 shell script 讀文本文件的例子,但是都沒有講出故事的全部,只說了一半。舉個(gè)例子,比如從一個(gè) testfile 文件中讀取如下格式的文本行:
testfile=$1
while read -r line
do
echo $line
done $testfile
$ chmod +x readfile
$ ./readfile testfile
ls -a -l /bin | sort
ls -a -l /bin | sort | wc
ls -a -l | grep sh | wc
ls -a -l
ls -a -l | sort | wc
如果想要輸出 testfile 文件原有的格式,把每行(作為整體)原封不動(dòng)的打印出來怎么辦?這時(shí)需要指定 IFS 變量,告訴 shell 以 "行" 為單位讀取。
IFS=""
testfile=$1
while read -r line
do
echo $line
done $testfile
$ ./readfile testfile
ls -a -l /bin | sort
ls -a -l /bin | sort | wc
ls -a -l | grep sh | wc
ls -a -l
ls -a -l | sort | wc
如果不用 IFS 的話,還有一種方法可以得到上面第二種方法的效果:
testfile=$1
x=`wc -l $testfile |awk '{print $1}'`
i=1
while [ $i -le $x ]
do
echo "`head -$i $testfile | tail -1`"
i=`expr $i + 1`
done
標(biāo)簽:仙桃 三門峽 遵義 上饒 江西 安康 大興安嶺 大慶
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Shell腳本逐行讀取文本文件(不改變文本格式)》,本文關(guān)鍵詞 Shell,腳本,逐行,讀取,文本,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。