2012-05-14 84 views
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後移動到下一行。我如何去做呢?移動文件指針從文件

回答

1

可能是你可以替換該行

read header_line < headers.txt 

有:

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

其中數累加在每一次迭代while循環,應初始化爲1

+0

如果我想將sed輸出存儲在變量中?並將計數變量自動增加?即時通訊unix中的新手:D @皮特 – user1356163

+0

sed:命令亂碼:$ {count} p – user1356163

+0

sed -n「$ {count} p」headers.txt。應該是雙引號 – user1356163

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<&-