日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何在Shell腳本中逐行讀取文件

在這里,我們學(xué)習(xí)Shell腳本中的3種方法來逐行讀取文件。

創(chuàng)新互聯(lián)公司自2013年創(chuàng)立以來,先為安居等服務(wù)建站,安居等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為安居企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

方法一、使用輸入重定向

逐行讀取文件的最簡單方法是在while循環(huán)中使用輸入重定向。

為了演示,在此創(chuàng)建一個名為“ mycontent.txt”的文本文件,文件內(nèi)容在下面:

 
 
 
  1. [root@localhost ~]# cat mycontent.txt  
  2. This is a sample file 
  3. We are going through contents 
  4. line by line 
  5. to understand 

創(chuàng)建一個名為“ example1.sh”的腳本,該腳本使用輸入重定向和循環(huán):

 
 
 
  1. [root@localhost ~]# cat example1.sh  
  2. #!/bin/bash 
  3. while read rows 
  4. do 
  5.   echo "Line contents are : $rows " 
  6. done < mycontent.txt 

運行結(jié)果:

如何工作的:

  • - 開始while循環(huán),并在變量“rows”中保存每一行的內(nèi)容
  • - 使用echo顯示輸出內(nèi)容,$rows變量為文本文件中的每行內(nèi)容
  • - 使用echo顯示輸出內(nèi)容,輸出內(nèi)容包括自定義的字符串和變量,$rows變量為文本文件中的每行內(nèi)容

Tips:可以將上面的腳本縮減為一行命令,如下:

 
 
 
  1. [root@localhost ~]# while read rows; do echo "Line contents are : $rows"; done < mycontent.txt

方法二、使用cat命令和管道符

第二種方法是使用cat命令和管道符|,然后使用管道符將其輸出作為輸入傳送到while循環(huán)。

創(chuàng)建腳本文件“ example2.sh”,其內(nèi)容為:

 
 
 
  1. [root@localhost ~]# cat example2.sh  
  2. #!/bin/bash 
  3. cat mycontent.txt | while read rows 
  4. do 
  5.   echo "Line contents are : $rows " 
  6. done 

運行結(jié)果:

如何工作的:

- 使用管道將cat命令的輸出作為輸入發(fā)送到while循環(huán)。

- |管道符將cat輸出的內(nèi)容保存在"$rows"變量中。

- 使用echo顯示輸出內(nèi)容,輸出內(nèi)容包括自定義的字符串和變量,$rows變量為文本文件中的每行內(nèi)容

Tips:可以將上面的腳本縮減為一行命令,如下:

 
 
 
  1. [root@localhost ~]# cat mycontent.txt |while read rows;do echo "Line contents are : $rows";done 

方法三、使用傳入的文件名作為參數(shù)

第三種方法將通過添加$1參數(shù),執(zhí)行腳本時,在腳本后面追加文本文件名稱。

創(chuàng)建一個名為“ example3.sh”的腳本文件,如下所示:

 
 
 
  1. [root@localhost ~]# cat example3.sh  
  2. #!/bin/bash 
  3. while read rows 
  4. do 
  5.   echo "Line contents are : $rows " 
  6. done < $1 

運行結(jié)果:

如何工作的:

  • - 開始while循環(huán),并在變量“rows”中保存每一行的內(nèi)容
  • - 使用echo顯示輸出內(nèi)容,$rows變量為文本文件中的每行內(nèi)容
  • - 使用輸入重定向<從命令行參數(shù)$1讀取文件內(nèi)容

方法四、使用awk命令

通過使用awk命令,只需要一行命令就可以逐行讀取文件內(nèi)容。

創(chuàng)建一個名為“ example4.sh”的腳本文件,如下所示:

 
 
 
  1. [root@localhost ~]# cat example4.sh  
  2. #!/bin/bash 
  3.  
  4. cat mycontent.txt |awk '{print "Line contents are: "$0}' 

運行結(jié)果:

總結(jié)

本文介紹了如何使用shell腳本逐行讀取文件內(nèi)容,通過單獨讀取行,可以幫助搜索文件中的字符串。


名稱欄目:如何在Shell腳本中逐行讀取文件
本文路徑:http://m.5511xx.com/article/cdocpej.html