文本1:
abc
trt
prc etc
文本2:
1
2
3 etc
文本3:
abc1
abc2
abc3
trt1
trt2
trt3
prc1
prc2
prc3 etc
答案1
如果文件可以容纳在内存中:
perl -e 'chomp (@a = <STDIN>); @b = <>;
for $a (@a) {for $b (@b) {print $a,$b}}' < 'txt 1' 'txt 2'
或者,如果笛卡尔积可以放入内存中,则zsh
:
a=( ${(f)"$(<'txt 1')"} )
b=( ${(f)"$(<'txt 2')"} )
print -rC1 -- $^a$^b
(该删除两个文件的空行)