溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何使用Shell腳本循環(huán)讀取文件中每一行內(nèi)容

發(fā)布時間:2021-07-01 11:40:30 來源:億速云 閱讀:526 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹了如何使用Shell腳本循環(huán)讀取文件中每一行內(nèi)容,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

前言

本文主要給大家介紹了關(guān)于使用Shell腳本循環(huán)讀取文件每一行的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細的介紹吧。

一、使用for循環(huán)

for line in `cat filename`
do
 echo $line
done

或者

for line in $(cat filename)
do
 echo $line
done

二、使用while循環(huán)

while read -r line
do
 echo $line
done < filename

While循環(huán)中read命令從標準輸入中讀取一行,并將內(nèi)容保存到變量line中。在這里,-r選項保證讀入的內(nèi)容是原始的內(nèi)容,意味著反斜杠轉(zhuǎn)義的行為不會發(fā)生。輸入重定向操作符< file打開并讀取文件file,然后將它作為read命令的標準輸入。

今天遇到一個問題弄了好久才搞明白:我想在循環(huán)中動態(tài)鏈接字符串,代碼如下:

for line in `cat filename`
do
 echo ${line}XXYY
done

就是在每一次循環(huán)過程中給取出來的字符串后面添加“XXYY”字符,但是程序就是運行不出來正確的結(jié)果。

后來發(fā)現(xiàn)是因為我的文件是才Window下生產(chǎn)的,在Linux下讀取這樣的文件由于換行符的不同會導(dǎo)致程序運行不出來正確的結(jié)果。

解決辦法:在linux安裝dos2unix小工具,經(jīng)過該工具轉(zhuǎn)化以后的文件再進行讀取就沒有問題了。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何使用Shell腳本循環(huán)讀取文件中每一行內(nèi)容”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI