2012-03-27 36 views
9

我有一個文件,包含file1.csv讀取線在一個while循環

This 
is 
some 
text. 

我使用通過每個線while read line循環,例如:

while read line; do 
    echo $line 
done < file1.csv 

我有另一個文件,用線的相同號碼,被叫file2.csv

A 
B 
C 
D 

數據EAC h行對應於同一行號的第一個文件中的數據。

  • 如何修改while循環,以便它可以打印從file2.csv對應的行?

回答

14

使用另一個FD。

while read line; do 
    if ! read -u 3 line2 
    then 
    break 
    fi 
    echo "$line***$line2" 
done < file1.csv 3< file2.csv 
+4

'同時讀取行1 &&讀-u 3 2號線; do' – Sepero 2013-10-15 16:43:08

9

您可以與paste工具嘗試:

$ cat one 
this 
is 
some 
text 
$ cat two 
1 
2 
3 
4 
$ while read a b ; do echo $a -- $b ; done < <(paste one two) 
this -- 1 
is -- 2 
some -- 3 
text -- 4 
8

可以使用paste命令:

$ paste -d, file{1,2}.csv | while IFS=, read x y; do echo "$x:$y"; done 
This:A 
is:B 
some:C 
text.:D