在 Bash 中迴圈遍歷檔案內容
通常需要使用 bash 指令碼讀取檔案中的每一行。有多種方法可以讀取檔案中的行。在下面的示例中,我們首先描述瞭如何建立一個示例檔案,然後執行一個讀取該示例檔案的指令碼。
建立要讀取的檔案
# Open vi Editor vi a_file.txt # Input the below lines Monday Tuesday Wednesday Thursday Friday Saturday Sunday # cat the file cat a_file.txt
執行上述程式碼將得到以下結果:
Monday Tuesday Wednesday Thursday Friday Saturday Sunday
使用 Do-While 迴圈
在這種方法中,我們使用 do-while 迴圈來讀取檔案。我們在檔案的末尾輸入檔名。首先,我們建立一個指令碼並賦予它執行許可權。只有這樣它才能讀取檔案並顯示結果。
#!/bin/bash while read LINE do echo "$LINE" done < a_file.txt
執行上述程式碼將得到以下結果:
Monday Tuesday Wednesday Thursday Friday Saturday Sunday
使用 for 和 in
在下一種方法中,我們使用 for 迴圈以及 in 語句。在這裡,我們將 cat 命令的結果(即每一行)儲存在一個變數中,該變數是 for 迴圈的一部分,並回顯該變數。
#!/bin/bash file=a_file.txt for i in `cat $file` do echo "$i" done
執行上述程式碼將得到以下結果:
Monday Tuesday Wednesday Thursday Friday Saturday Sunday
僅使用 echo
我們也可以僅使用 echo 來獲取檔案的內容。但是結果將作為一行行的陣列輸出,顯示所有行的組合。
echo $( < a_file.txt )
執行上述程式碼將得到以下結果:
Monday Tuesday Wednesday Thursday Friday Saturday Sunday
讀取包含空行的檔案
如果一個檔案包含一些空行,那麼我們可以使用以下程式碼避免在輸出中顯示它們。這使用 IFS(內部欄位分隔符)設定為空字串,以便空行被視為欄位分隔符並在輸出中避免。假設在第 3 行和第 4 行之間有一些空行,這些空行將不會被列印。
#!/bin/bash while IFS = read -r LINE do echo "$LINE" done < a_file.txt
執行上述程式碼將得到以下結果:
Monday Tuesday Wednesday Thursday Friday Saturday Sunday
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP