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
广告