在 Bash 中讀取檔案行
Fumbani Banda
2023年1月30日
2022年5月14日
本教程使用 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
Author: Fumbani Banda