Volevo sapere se esiste un modo per leggere da due file di input in un ciclo nidificato mentre una riga alla volta. Ad esempio, supponiamo che io abbia due file FileA
e FileB
.
Filea:
[jaypal:~/Temp] cat filea
this is File A line1
this is File A line2
this is File A line3
fileB:
[jaypal:~/Temp] cat fileb
this is File B line1
this is File B line2
this is File B line3
Script di esempio corrente:
[jaypal:~/Temp] cat read.sh
#!/bin/bash
while read lineA
do echo $lineA
while read lineB
do echo $lineB
done < fileb
done < filea
Esecuzione:
[jaypal:~/Temp] ./read.sh
this is File A line1
this is File B line1
this is File B line2
this is File B line3
this is File A line2
this is File B line1
this is File B line2
this is File B line3
this is File A line3
this is File B line1
this is File B line2
this is File B line3
Problema e output desiderato:
Questo passa su FileB completamente per ogni riga in FileA. Ho provato a usare continue, break, exit ma nessuno di questi è pensato per ottenere l'output che sto cercando. Vorrei che lo script leggesse solo una riga dal file A e quindi una riga dal file B e uscisse dal ciclo e continuasse con la seconda riga del file A e la seconda riga del file B. Qualcosa di simile al seguente script:
[jaypal:~/Temp] cat read1.sh
#!/bin/bash
count=1
while read lineA
do echo $lineA
lineB=`sed -n "$count"p fileb`
echo $lineB
count=`expr $count + 1`
done < filea
[jaypal:~/Temp] ./read1.sh
this is File A line1
this is File B line1
this is File A line2
this is File B line2
this is File A line3
this is File B line3
È possibile farlo con ciclo while?
paste -d '\n' file1 file2