On 12/28/2016 01:02 AM, Joachim Backes wrote:
On 12/27/2016 11:49 PM, JD wrote:
> Reading lines from 2 files in such a way that each iteration
> lets me read the next line from each file so that the items
> read from each file are in sync as far as line number is concerned.
> Is this "doable"?
>
> For a single file, indexing to next line is automatic, visa vis
> while read line; do
> echo $line
> done < some_file.txt
>
> for when more than 1 file is involved, it is not so easy ...
JD,
If using the bash, you could introduce file descriptors for each file you are reading
from ( set the fie descriptor by using the exec command) and then read using the -u option
for each file.
Indeed! I was just working on a script that has lines like:
exec 3< <(gunzip -fc "$Infile_1z" | tr '\0' '\n')
exec 4< "$Infile_2"
...
while [[ various_conditions ]]; do
read -r -u 3 Data1 || break
read -r -u 4 Data2 || { echo "EOF on $Infile_2"; exit 1; }
...
done
The reads stay in sync just fine.
--
Bob Nichols "NOSPAM" is really part of my email address.
Do NOT delete it.