我找不到解决方案。 所以这就是问题所在。 结果应为100行(文件1),文件2中的内容重复25次。 我想要的是即使行数不相等也要加入内容。继续重复包含File2中的行,直到满足File1中的行数为止。
文件1:
test1@domain.com
test2@domain2.com
test3@domain3.com
test4@domain4.com
文件2:
A1,B11
A2,B22
A3,B33
A4,B44
我想要的是在下面合并文件以达到以下预期结果:
文件3:
test1@domain.com,A1,B12
test2@domain2.com,A2,B22
test3@domain3.com,A3,B33
test4@domain4.com,A4,B44
请注意:在完成File2中的4行之后,从第一行再次开始,然后重复。
test5@domain5.com,A1,B12
test6@domain6.com,A2,B22
test7@domain7.com,A3,B33
test8@domain8.com,A4,B44
答案 0 :(得分:2)
您问题中的示例尚不清楚,但我认为这是您要执行的操作:
$ awk -v OFS=',' 'NR==FNR{a[++n]=$0;next} {print $0, a[(FNR-1)%n+1]}' file2 file1
test1@domain.com,A1,B11
test2@domain2.com,A2,B22
test3@domain3.com,A3,B33
test4@domain4.com,A4,B44
test5@domain5.com,A1,B11
test6@domain6.com,A2,B22
上面是针对此输入运行的:
$ cat file1
test1@domain.com
test2@domain2.com
test3@domain3.com
test4@domain4.com
test5@domain5.com
test6@domain6.com
$
$ cat file2
A1,B11
A2,B22
A3,B33
A4,B44
答案 1 :(得分:1)
请您尝试以下。
awk '
BEGIN{
OFS=","
}
FNR==NR{
a[++count]=$0
next
}
{
count_curr++
count_curr=count_curr>count?1:count_curr
print a[count_curr],$0
}
' Input_file2 Input_file1