2015-05-20 72 views
-1

如何生成循環第一個列表的輸出?這兩個列表都是具有由行分隔的值的文件。Unix shell迭代兩個具有不同數值的列表

list1: 
1 
2 
5 
6 
8 
10 
13 

list2: 
a 
b 
c 
d 

Output: 
1 a 
2 b 
5 c 
6 d 
8 a 
10 b 
13 c 
+1

顯示你在它的企圖? – anubhava

+1

如果您的聲望得分爲75,您可以開始[賞金](http://stackoverflow.com/help/bounty)。 – Cyrus

+0

@Cyrus我希望像 – izabera

回答

0

只讀最短的文件並將每行存儲在一個數組中。
然後逐行讀取第二行並打印第i行的行數。

這是一個快速解決方案的bash:

while read -r; do 
    shortfile+=("$REPLY"); ((i++)) 
done < /path/to/shortfile 
lines=$i i=0 
while read -r; do 
    printf '%s %s\n' "$REPLY" "${shortfile[i++%lines]}" 
done < /path/to/longfile 
+0

$ readarray -bash我能downvote評論:readarray:找不到命令 $的bash --version GNU的bash,版本53年3月2日(1)-release下(x86_64-蘋果darwin13) 版權所有(C)2007自由軟件基金會,公司 – user3486527

+0

@ user3486527編輯 – izabera

+0

這似乎是非常接近,但是相反! '1 b 3分配 -C 4 d 5 b 9分配 -C 10 d 13' – user3486527

相關問題