bash 中是否有类似的 Python zip() 功能?具体来说,我在不使用 python 的情况下寻找 bash 中的等效功能:
$ echo "A" > test_a
$ echo "B" >> test_a
$ echo "1" > test_b
$ echo "2" >> test_b
$ python -c "print '\n'.join([' '.join([a.strip(),b.strip()]) for a,b in zip(open('test_a'),open('test_b'))])"
A 1
B 2
最佳答案
纯 bash:
liori@marvin:~$ zip34() { while read word3 <&3; do read word4 <&4 ; echo $word3 $word4 ; done }
liori@marvin:~$ zip34 3<a 4<b
alpha one
beta two
gamma three
delta four
epsilon five
liori@marvin:~$
(旧答案)查看 join
。
liori:~% cat a
alpha
beta
gamma
delta
epsilon
liori:~% cat b
one
two
three
four
five
liori:~% join =(cat -n a) =(cat -n b)
1 alpha one
2 beta two
3 gamma three
4 delta four
5 epsilon five
(假设你有 =()
operator like in zsh
,否则会更复杂)。
关于bash 中的 Python zip() 行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6145540/