Awk:如何从单独的CSV中获取两列并添加到新文件中

Awk:如何从单独的CSV中获取两列并添加到新文件中,csv,awk,Csv,Awk,我有两个文件,每个文件的列数和行数相同,分别命名为file1.csv和file2.csv。我正在尝试创建一个awk脚本,从每个文件中获取第二列,并将它们作为单独的列(不合并为一列)放入一个新文件new.csv;到目前为止,我尝试的所有方法都会创建一个新文件,其中一列位于另一列的下方 file1.csv如下所示: num,avg,best 0,0.5,0.7 1,0.2,0.6 2,0.35,0.8 3,0.43,0.76 4,0.3,0.5 file2.csv如下所示: num,avg,bes

我有两个文件,每个文件的列数和行数相同,分别命名为
file1.csv
file2.csv
。我正在尝试创建一个awk脚本,从每个文件中获取第二列,并将它们作为单独的列(不合并为一列)放入一个新文件
new.csv
;到目前为止,我尝试的所有方法都会创建一个新文件,其中一列位于另一列的下方

file1.csv
如下所示:

num,avg,best
0,0.5,0.7
1,0.2,0.6
2,0.35,0.8
3,0.43,0.76
4,0.3,0.5
file2.csv
如下所示:

num,avg,best
0,0.2,0.4
1,0.74,0.9
2,0.48,0.82
3,0.6,0.8
4,0.4,0.65
我尝试了以下代码来创建新文件:

awk 'BEGIN{FS=",";OFS=","} {print $2}' file1.csv file2.csv > new.csv
但是,它将以下内容输出到
new.csv

avg
0.5
0.2
0.35
0.43
0.3
0.2
0.74
0.48
0.6
0.4
然而,我会
new.csv
如下所示:

0.5,0.2
0.2,0.74
0.35,0.48
0.43,0.6
0.3,0.4
我已经做了很多搜索,但我没有发现任何特别有用的东西(尽管我相当确定这是一件非常常见的事情)。我试图通过一个小例子来说明这一点,因为我有100多个文件,我需要从中提取一列并放入一个文件中


非常感谢您的帮助:-)

请尝试以下内容

awk '
BEGIN{
  FS=OFS=","
}
FNR==1{
  next
}
FNR==NR{
  a[FNR]=$2
  next
}
{
  print a[FNR],$2
}' file1.csv  file2.csv
输出如下

0.5,0.2
0.2,0.74
0.35,0.48
0.43,0.6
0.3,0.4

通过查看您的个人资料,您了解到您没有为您的问题选择任何正确答案。找个时间给它,当你看到一些答案时,试着从中选择一个答案作为正确答案,也看一次@Chloe,是的,正确。
FNR
是行号,当awk开始读取新的输入文件时,行号会重置为
1
。正如我们所知,
awk
可以一次读取多个文件,所以我使用FNR为第一个输入文件保存行号,并在读取第二个输入文件时使用它打印其值。