首页 > 解决方案 > 根据另一个 csv 中的列信息从一个 csv 文件中提取行

问题描述

我有 2 个 csv 文件。我希望文件 1 的第 1 列的信息用于从另一个 csv 文件中提取行。我的 file1.csv 的名称按列排列:

ENSG00000102977
ENSG00000100823
ENSG00000149311
ENSG00000175054
ENSG00000085224
ENSG00000178999
ENSG00000197299
ENSG00000139618
ENSG00000105173
ENSG00000175305
ENSG00000166226
ENSG00000163468
ENSG00000115484
ENSG00000150753
ENSG00000146731

第二个 csv 文件的名称以及相应的值按行排列。

ENSG00000102977 1083.82334384253    1824.50639384557    1962.86064714976    1367.60568624972

我写了一个awk脚本

`awk 'FNR == NR{f1[$1];next} $1 in f2 {print $1,$2,$3,$4,$5 $NF}' FS="," file1.csv  FS="," file2.csv`

但它返回时没有任何输出或错误。请指导我哪里错了。它有点令人费解,因为没有错误。

标签: csvawk

解决方案


Trygrep的选项 -f - 从文件中读取模式。

grep -f fileWithPatterns.csv fileToExtractFrom.csv

推荐阅读