繁体   English   中英

将File1与File2合并(继续从File1追加到File2,直到不再有行)

[英]Merge File1 with File2 (keep appending from File1 to File2 until no more rows)

我找不到解决方案。 所以这就是问题所在。 结果应为100行(File1),其中来自File2的内容重复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

您问题中的示例不明确,但我认为这是您要做的事情:

$ 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM