在shell中同时读取多个文件的方法
1。单文件读取
在shell脚本下,可以以多种方式逐行读取文件,如下所示:
在`猫$ { input_filename }线`
做
echo $线
多恩
读取行
做
echo $线
做<<美元input_filename } {
第二种方法是将文件重定向到标准输入。
超过2。文件的读取方法
如何同时实现多个文件的读取
我们可以继续使用文件重定向功能来将文件重定向到一个特定的文件描述符,并带有以下语法:
n <文件
n>文件
>文件
n文件
n代表打开文件文件的文件描述符,类似于其他编程语言中的FD,如果没有指定n,默认行为如下所示:
<文件# 0相同的日志文件
>文件>文件#相同1
< >文件#相同0 <>文件
我们可以打开您想通过执行命令重定向的文件:
执行7<1
执行<< file2 8
然后,我们可以通过读取命令读取相应文件的内容:
读数据小于7 #是区分这7个文件描述符,而不是文件名
读取数据< 8
关闭文件
执行程序7 <空/空
执行程序8 <空/空
多个文件读取的示例代码如下所示:
Readfiles(){
当地FD1 = 7
当地FD2 = 8
当地1 = 1美元
当地file2 = 2美元
当地COUNT1 = 0
地方是= 0
当地第一= 0
当地EOF2 = 0
本地的数据
本地数据
#打开文件。
执行7<1美元
执行<< file2美元8
While $eof1 -eq 0 $eof2 -eq 0 ||
做
如果读过<< FD1 1美元;然后
让COUNT1 + +
printf%s,%D:%s1美元美元美元COUNT1 数据
其他的
第一= 1
FI
如果读过<< FD2 2美元;然后
让是+ +
printf%s,%D:%s美元美元美元file2是数据
其他的
EOF2 = 1
FI
多恩
}
#读file1和file2
readfiles file1 file2