国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Linux > 正文

shell下同時(shí)讀取多個(gè)文件的方法

2020-07-10 11:57:21
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

1. 單個(gè)文件的讀取

在shell腳本下,可以多種方式實(shí)現(xiàn)按行讀取文件,如下:

for line in `cat ${input_filename}`do  echo $linedone
while read linedo  echo $linedone < ${input_filename}

其中第二種方式是將文件重定向到標(biāo)準(zhǔn)輸入中

2. 多個(gè)文件讀取方法

那如何實(shí)現(xiàn)同時(shí)多個(gè)文件的讀呢?
我們可以繼續(xù)利用bash中的文件重定向功能,將文件重定向到特定的文件描述符中,語(yǔ)法如下:

n<filen>filen>>filen<>file

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

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

我們可以通過(guò)exec命令來(lái)打開所要重定向的文件:

exec 7<file1exec 8<file2

然后我們可以通過(guò)read命令來(lái)讀取對(duì)應(yīng)文件的內(nèi)容:

read data <&7 #使用符合是為了區(qū)分7是文件描述符,而不是文件名read data <&8
關(guān)閉文件
exec 7</dev/nullexec 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 file2readfiles file1 file2

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 凤阳县| 定兴县| 双江| 尼玛县| 会同县| 禹城市| 缙云县| 商洛市| 黎川县| 南华县| 正镶白旗| 盘锦市| 余干县| 饶平县| 海丰县| 象州县| 崇仁县| 龙里县| 陆丰市| 湟源县| 康定县| 农安县| 太谷县| 文山县| 中方县| 岑巩县| 米脂县| 甘洛县| 琼结县| 武川县| 洪洞县| 南陵县| 益阳市| 湘潭县| 南宁市| 张家口市| 类乌齐县| 伊金霍洛旗| 逊克县| 嘉定区| 富阳市|