在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
Run Code Online (Sandbox Code Playgroud)
lio*_*ori 16
纯粹的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:~$
Run Code Online (Sandbox Code Playgroud)
(老回答)看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
Run Code Online (Sandbox Code Playgroud)
码
[tmp]$ echo "A" > test_a
[tmp]$ echo "B" >> test_a
[tmp]$ echo "1" > test_b
[tmp]$ echo "2" >> test_b
[tmp]$ cat test_a
A
B
[tmp]$ cat test_b
1
2
[tmp]$ paste test_a test_b > test_c
[tmp]$ cat test_c
A 1
B 2
Run Code Online (Sandbox Code Playgroud)