shell指令碼 逐行處理文字檔案

2021-08-07 06:24:33 字數 1242 閱讀 3933

1.通過read命令完成.

read命令接收標準輸入,或其他檔案描述符的輸入,得到輸入後,read命令將資料放入乙個標準變數中.

利用read讀取檔案時,每次呼叫read命令都會讀取檔案中的」一行」文字.

當檔案沒有可讀的行時,read命令將以非零狀態退出.

cat data.dat | while

read line

doecho

"file:$"

done

或while

read line

doecho

"file:$"

done

< data.dat

可輸入命令列引數(檔名):

filename="$1"

cat $filename | while

read line

doecho

"file:$"

done

2.使用awk命令完成

awk是一種優良的文字處理工具,提供了極其強大的功能.

利用awk讀取檔案中的每行資料,並且可以對每行資料做一些處理,還可以單獨處理每行資料裡的每列資料.

cat

data.dat | awk ''

catdata.dat | awk 'for(i=2;i

printf "\n"}'

第1行**輸出data.dat裡的每行資料,第2**輸出每行中從第2列之後的資料.

如果是單純的資料或文字檔案的按行讀取和顯示的話,使用awk命令比較方便.

3.使用for var in file 命令完成

for var in file 表示變數var在file中迴圈取值.取值的分隔符由$ifs確定.

for line in $(cat data.dat)

doecho

"file:$"

done

for line in `cat data.dat`

doecho

"file:$"

done

如果輸入文字每行中沒有空格,則line在輸入文字中按換行符分隔符迴圈取值.

如果輸入文字中包括空格或製表符,則不是換行讀取,line在輸入文字中按空格分隔符或製表符或換行符特環取值.

可以通過把ifs設定為換行符來達到逐行讀取的功能.

ifs的預設值為:空白(包括:空格,製表符,換行符).

Shell指令碼如何逐行處理文字檔案

read 命令從標準輸入中讀取一行,並把輸入行的每個欄位的值指定給 shell 變數,用 ifs 內部字段分隔符 變數中的字元作為分隔符。variablename 變數名 引數指定給每乙個欄位的值,由 variablename 變數名 引數指定的以此類推,直到最後乙個字段。read命令接收標準輸入,...

shell指令碼讀寫文字檔案

通過讀寫臨時檔案來完成核心與介面的互動是目前接觸的比較常用手段。而寫操作的格式如何呢。mdate date r d m y logfile tmp hdstatuslog.log echo disk is good mdate logfile 寫到檔案的格式就會變成這樣 dev sdc is goo...

Python 逐行讀寫文字檔案

filereadobj open input.txt filewriteobj open output.txt w filelinetext filereadobj.readline while filelinetext string filelinetext filewriteobj.write ...