在 Bash 中讀取檔案行

Fumbani Banda 2023年1月30日 2022年5月14日
  1. 在 Bash 中使用 read 命令逐行讀取檔案
  2. 在 Bash 中使用 IFS-r 選項逐行讀取檔案
在 Bash 中讀取檔案行

本教程使用 read 命令在 bash 指令碼中逐行讀取檔案。

這是我們將使用的文字檔案的內容。

 john\n ,
james\n ,
joe,
jack,
jill

在 Bash 中使用 read 命令逐行讀取檔案

names.txt 檔案被重定向到 while 迴圈。read 命令處理檔案中的每一行並將其分配給 p 變數,echo 命令顯示它。一旦處理完所有行,while 迴圈就會停止。read 命令會忽略前導空格,這在某些情況下可能會產生誤導。

printf "Names\n"
while read p;
do
    echo "$p"
done <names.txt

輸出:

Names
johnn ,
jamesn ,
joe,
jack,
jill

在 Bash 中使用 IFS-r 選項逐行讀取檔案

預設情況下,read 命令會刪除所有前導空格並將反斜槓解釋為轉義字元。我們新增 -r 選項以禁用反斜槓轉義,並禁用修剪空格,以便清除內部欄位分隔符(IFS)。

printf "Names\n"
while IFS= read -r line; do
    printf '%s\n' "$line"
done < names.txt

輸出:

Names
 john\n ,
james\n ,
joe,
jack,
jill
Fumbani Banda avatar Fumbani Banda avatar

Fumbani is a tech enthusiast. He enjoys writing on Linux and Python as well as contributing to open-source projects.

LinkedIn GitHub

相關文章 - Bash File