Csv 如何表示其他文件中存在的文件内容?

Csv 如何表示其他文件中存在的文件内容?,csv,awk,Csv,Awk,我有两个大的.csv文件。我想提取文件1中的文件2的内容 例如: 文件1: A1BG 1 NAT1 9 NAT2 10 SERPINA3 12 AAMP 14 AANAT 15 AARS1 16 文件2: 1 10422 1 10549 1 2232 1 23198 1 23352 1 284403 1 368 1 51035 1 80854 1 9923 2 10053 2 10376 2 10724 2 2026 2 2193 2 22976 2 23

我有两个大的.csv文件。我想提取文件1中的文件2的内容

例如:

文件1:

A1BG    1
NAT1    9
NAT2    10
SERPINA3    12
AAMP    14
AANAT   15
AARS1   16
文件2:

1 10422
1 10549
1 2232
1 23198
1 23352
1 284403
1 368
1 51035
1 80854
1 9923
2 10053
2 10376
2 10724
2 2026
2 2193
2 22976
2 23154
2 24138
2 2639
2 284207
2 285203
2 3337
2 3437
2 348
2 348
2 348
2 351
4 7689
输出:

1 10422
1 10549
1 2232
1 23198
1 23352
1 284403
1 368
1 51035
1 80854
1 9923
这是我的代码:

awk 'NR==FNR{FS=" ";a[$2];next}{FS=" ";if ($1 in a) print $0}' <file1.csv <file2.csv >output.csv

awk'NR==FNR{FS=”“;a[$2];next}{FS=“;if($1 in a)print$0}”我相信您只是在
awk
中寻找这个解决方案

awk 'FNR==NR{a[$2];next} ($1 in a)' Input_file1  Input_file2
说明:添加上述内容的详细说明

awk '                       ##Starting awk program from here.
FNR==NR{                    ##Checking condition FNR==NR which will be TRUE when Input_file1 is being read.
  a[$2]                     ##Creating array a with index of 2nd field of current line.
  next                      ##next will skip all further statements from here.
}
($1 in a)                   ##Checking condition if 1st field is present in array a then print that line from Input_file2
' Input_file1  Input_file2  ##Mentioning Input_file names here.

我相信您只是在
awk
中寻找此解决方案

awk 'FNR==NR{a[$2];next} ($1 in a)' Input_file1  Input_file2
说明:添加上述内容的详细说明

awk '                       ##Starting awk program from here.
FNR==NR{                    ##Checking condition FNR==NR which will be TRUE when Input_file1 is being read.
  a[$2]                     ##Creating array a with index of 2nd field of current line.
  next                      ##next will skip all further statements from here.
}
($1 in a)                   ##Checking condition if 1st field is present in array a then print that line from Input_file2
' Input_file1  Input_file2  ##Mentioning Input_file names here.

让我们看看您的代码:


awk'NR==FNR{FS=”“;a[$2];next}{FS=“;如果($1 in a)print$0}'让我们看看您的代码:


awk'NR==FNR{FS=“”;a[$2];next}{FS=“”;如果($1 in a)print$0}这一定是论坛上最常问的问题……你的CSV文件中的逗号在哪里?@EdMorton这篇文章在四个问题中问了三次此类问题。我记得第一次需要它的时候,我伸展了我的大脑-使用awk,也就是说。顺便说一句,查看您的问题历史记录,我认为您应该检查一下:。注意,您不需要为每个文件中的每一行重置FS
FS=”“
是默认设置,因此您可以将其完全从两个块中删除。这必须是论坛上最常见的问题……CSV文件中的逗号在哪里?@EdMorton此OP在四个问题中问了三次此类问题。我记得第一次需要它的时候,我伸展了我的大脑-使用awk,也就是说。顺便说一句,查看您的问题历史记录,我认为您应该检查一下:。注意,您不需要为每个文件中的每一行重置FS
FS=”“
是默认设置,因此您可以将其完全从两个块中删除。是。我知道这个解决办法。除此之外,我还检查了许多解决方案。但是他们中的任何一个都不起作用。我在两个小文件上尝试了它们,得到了真正的结果,但在我的大数据上没有效果。“没有效果”是完全没有意义的。阅读并用新示例编辑您的问题,您应该能够重新打开问题。是的。我知道这个解决办法。除此之外,我还检查了许多解决方案。但是他们中的任何一个都不起作用。我在两个小文件上尝试了它们,得到了真正的结果,但在我的大数据上没有效果。“没有效果”是完全没有意义的。阅读,用新的例子编辑你的问题,你应该能够重新打开这个问题。我尝试了很多其他的任务,比如你提到的。我可以在两个小文件上得到真实结果。但对于我自己的大文件,它们不起作用。我们的文件是.csv格式和逗号分隔符,我将FS设置为逗号。我把它们改成了txt,但没有得到任何结果。我尝试了很多其他的任务,比如你提到的。我可以在两个小文件上得到真实结果。但对于我自己的大文件,它们不起作用。我们的文件是.csv格式和逗号分隔符,我将FS设置为逗号。我把它们改成了txt,但没有结果。