如何生成循環第一個列表的輸出?這兩個列表都是具有由行分隔的值的文件。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
如何生成循環第一個列表的輸出?這兩個列表都是具有由行分隔的值的文件。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
只讀最短的文件並將每行存儲在一個數組中。
然後逐行讀取第二行並打印第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
$ readarray -bash我能downvote評論:readarray:找不到命令 $的bash --version GNU的bash,版本53年3月2日(1)-release下(x86_64-蘋果darwin13) 版權所有(C)2007自由軟件基金會,公司 – user3486527
@ user3486527編輯 – izabera
這似乎是非常接近,但是相反! '1 b 3分配 -C 4 d 5 b 9分配 -C 10 d 13' – user3486527
顯示你在它的企圖? – anubhava
如果您的聲望得分爲75,您可以開始[賞金](http://stackoverflow.com/help/bounty)。 – Cyrus
@Cyrus我希望像 – izabera