Bash 将文件1与文件2合并(继续从文件1追加到文件2,直到不再有行)
我找不到解决办法。 这就是问题所在。 结果应该是100行(File1),其中File2的内容重复25次。 我想要的是加入内容,即使行数不相等。不断重复包含文件2中的行,直到满足文件1中的行数 文件1: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
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开始索引数组、字段和字符串的方式背道而驰,因此原则上我宁愿避免这样做。