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

ファイル headers.txt と temp1.txt から同時に行を読みたいです。したがって、たとえば、temp1.txt から 1 行を読み取る場合は、headers.txt からも 1 行を読み取る必要があります。このコードの問題は、temp1.txt から 1 行ずつ読み取りますが、headers.txt からは同じ行を読み取り続けることです。header_line が読み込まれたら、ファイル ポインタを次の行に移動させたいと思います。どうすればいいですか?

4

2 に答える 2

3

追加のファイル記述子を使用して、次の前に 2 番目の読み取りを行います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 に答える