有一种使用itertools.product在python中执行此操作的方法,但是有没有办法在shell中执行此操作?
L1 = 'a b c'
L2 = '1 2'
L3 = 'x y'
for x, y, z in L1, L2, L3:
do
echo x,y,z
done
我希望结果看起来像这样
a1x
a1y
a2x
a2y
b1x
b1y
...
答案 0 :(得分:3)
如果您知道列表是什么,则可以使用大括号扩展名:
$ printf '%s\n' {a,b,c}{1,2}{x,y}
a1x
a1y
a2x
a2y
b1x
b1y
b2x
b2y
c1x
c1y
c2x
c2y
但是,如果列表位于三个数组中,则必须执行嵌套循环:
l1=(a b c); l2=(1 2); l3=(x y)
for i in "${l1[@]}"; do
for j in "${l2[@]}"; do
for k in "${l3[@]}"; do
echo "$i$j$k"
done
done
done