婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > shell下同時讀取多個文件的方法

shell下同時讀取多個文件的方法

熱門標簽:長春外呼系統價格 美圖手機 南昌語音外呼系統代理 成都移動外呼系統 長沙智能外呼系統中心 佛山外呼系統平臺 聯客智能語音外呼系統賬號格式 南寧智能外呼系統線路商 電銷機器人的效果

1. 單個文件的讀取

在shell腳本下,可以多種方式實現按行讀取文件,如下:

for line in `cat ${input_filename}`
do
  echo $line
done
while read line
do
  echo $line
done  ${input_filename}

其中第二種方式是將文件重定向到標準輸入中

2. 多個文件讀取方法

那如何實現同時多個文件的讀呢?
我們可以繼續利用bash中的文件重定向功能,將文件重定向到特定的文件描述符中,語法如下:

nfile
n>file
n>>file
n>file

這里的n代表打開文件file的文件描述符,類似其他編程語言中的fd,如果沒有指定n,則其默認行為如下:

file   #same as 0file
>file  #same as 1>file
>file   #same as 0>file

我們可以通過exec命令來打開所要重定向的文件:

exec 7file1
exec 8file2

然后我們可以通過read命令來讀取對應文件的內容:

read data 7 #使用符合是為了區分7是文件描述符,而不是文件名
read data 8
關閉文件
exec 7/dev/null
exec 8/dev/null

多文件讀取示例代碼如下:

readfiles() {
	local FD1=7
	local FD2=8
	local file1=$1
	local file2=$2
	local count1=0
	local count2=0
	local eof1=0
	local eof2=0
	local data1
	local data2
 
	# Open files.
	exec 7$file1
	exec 8$file2
	while [[ $eof1 -eq 0  ||  $eof2 -eq 0 ]]
	do
		if read data1$FD1; then
			let count1++
			printf "%s, line %d: %s\n" $file1 $count1 "$data1"
		else
			eof1=1
		fi
		if read data2 $FD2; then
			let count2++
			printf "%s, line %d: %s\n" $file2 $count2 "$data2"
		else
			eof2=1
		fi
	done
}
#read file1 and file2
readfiles file1 file2

標簽:邵陽 阜陽 新鄉 云浮 法律服務 慶陽 沈陽 東營

巨人網絡通訊聲明:本文標題《shell下同時讀取多個文件的方法》,本文關鍵詞  shell,下,同時,讀取,多個,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《shell下同時讀取多個文件的方法》相關的同類信息!
  • 本頁收集關于shell下同時讀取多個文件的方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 万山特区| 寻乌县| 电白县| 烟台市| 班玛县| 砀山县| 汽车| 万山特区| 武邑县| 福贡县| 明溪县| 赫章县| 邳州市| 盐边县| 许昌县| 连城县| 永靖县| 无棣县| 木兰县| 新化县| 周口市| 治县。| 南投县| 百色市| 吴桥县| 忻城县| 油尖旺区| 大理市| 日照市| 砚山县| 秦安县| 项城市| 乳山市| 宜阳县| 闽侯县| 乐至县| 万载县| 永修县| 富蕴县| 建湖县| 临颍县|