1
while read line;do
read header_line < headers.txt
task 1
task 2
done < temp1.txt

我想同时从文件 headers.txt 和 temp1.txt 中读取行。因此,例如,如果我从 temp1.txt 中读取一行,我也应该从 headers.txt 中读取一行。这段代码的问题是它从 temp1.txt 中逐一读取行,但它一直从 headers.txt 中读取同一行。一旦 header_line 被读取,我希望文件指针移动到下一行。我该怎么做?

4

2 回答 2

3

使用额外的文件描述符并在以下内容之前进行第二次读取do

#!/bin/bash

# open extra file descriptors for input
exec 3< headers.txt

while read -r line; read -r -u 3 header_line
do
    echo "[$header_line] [$line]"
done < temp1.txt

# close the extra file descriptor
exec 3<&-
于 2012-05-14T13:07:36.393 回答
1

也许你可以替换这条线

read header_line < headers.txt 

和 :

 sed -n '${count}p' hearders.txt

其中 count 在 while 循环的每次迭代中递增,应初始化为 1。

于 2012-05-14T11:56:13.670 回答