Linux 管理員 - 讀取和寫入檔案



在 BASH 中讀取和寫入檔案可以使用輸入和輸出重定向器來完成。我們在之前的指令碼中已經瞭解了這一點。

#!/bin/bash 
myFile = "myLines.txt"

while read -a FILENAME; 
   do
   
   if [ `echo $FILENAME | grep 004` ]; 
      then 
      echo "line was $FILENAME" >> LineFile.txt 
      break 
   fi
   
echo $FILENAME 
done < $myFile

現在將條件分支回顯到檔案 **LineFile.txt**,而不是回顯到終端。

已經以兩種方式介紹了從檔案讀取,即 cat 和 read。**read** 通常總是被認為是最佳實踐。雖然 **cat** 僅僅從檔案中傳遞文字流。**read** 暗示指令碼正在讀取實際檔案,並對讀取檔案負責。

下面的指令碼再次讀取文字檔案,將每一行放入一個數組,然後將陣列列印到終端。

#!/bin/bash 
myFile = "myLines.txt"
line = ()

while read -r FILELINE; 
   do 
   line+=($FILELINE) 
done < $myFile

for i in `seq 0 ${#line[@]}`; 
   do 
   echo $i " -> " ${line[$i]} 
done

下面是輸出。

0  ->  line001 
1  ->  line002 
2  ->  line003 
3  ->  line004 
4  ->  line005 
5  ->  line006 
6  ->  line007 
7  ->  line008 
8  ->  line009
9  ->  line010
linux_admin_shell_scripting.htm
廣告
© . All rights reserved.