Bash 将文件1与文件2合并(继续从文件1追加到文件2,直到不再有行)

Bash 将文件1与文件2合并(继续从文件1追加到文件2,直到不再有行),bash,awk,sed,Bash,Awk,Sed,我找不到解决办法。 这就是问题所在。 结果应该是100行(File1),其中File2的内容重复25次。 我想要的是加入内容,即使行数不相等。不断重复包含文件2中的行,直到满足文件1中的行数 文件1: test1@domain.com test2@domain2.com test3@domain3.com test4@domain4.com 文件2: A1,B11 A2,B22 A3,B33 A4,B44 我想要的是将以下文件组合在一起,以获得以下预期结果: 文件3: test1@domai

我找不到解决办法。 这就是问题所在。 结果应该是100行(File1),其中File2的内容重复25次。 我想要的是加入内容,即使行数不相等。不断重复包含文件2中的行,直到满足文件1中的行数

文件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
注意:在完成文件2中的4行之后,从第一行重新开始,然后重复

test5@domain5.com,A1,B12
test6@domain6.com,A2,B22
test7@domain7.com,A3,B33
test8@domain8.com,A4,B44

你问题中的例子不清楚,但我认为这就是你想要做的:

$ 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

你能试试下面的吗

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

如果您的意思是
A1,B11
而不是
A1,B12
@Jax,请编辑,很高兴它对您有所帮助,请检查此链接,一旦您可以选择正确答案,干杯。投票。不幸的是,它不可见,因为我的声誉不到15。新用户。再次感谢!我相信你可以用
a[n++]
a[(FNR-1)%n]
@kvantour来减少它一点是的,但是你最终得到一个从零开始索引的数组,这与awk总是从1开始索引数组、字段和字符串的方式背道而驰,因此原则上我宁愿避免这样做。