gpt4 book ai didi

linux - 从 csv 输出特定行

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:07:01 24 4
gpt4 key购买 nike

我有一个非常大 (500mb) 的 csv 文件和另一个每行包含一个单词的文本文件。

当我在 csv 的文本文件中找到一个单词时,在特定的列中 我想输出该行(将输出重定向到一个文件)。我有一个使用 grep -iE "(word1|word2|word3|...|wordn)"的 grep 解决方案,但在使用 16gb 内存和段错误后它崩溃了,只提取了很少的条目。

我试过 csvtool 但它拒绝产生任何有值(value)的东西。

该解决方案必须在 linux 下工作,并且最好不要占用内存。

最佳答案

使用 awk。首先用每行一个词处理文件,将其数据保存在一个数组中,对于第二个文件,使用表达式 if (column in array) 检查特定列:

awk '
BEGIN {
FS = OFS = ",";
}
FNR == NR {
data[ $1 ] = 1;
next;
}
FNR < NR {
if ( $4 in data ) {
print $0;
}
}
' textfile large_csv_file

关于linux - 从 csv 输出特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11968270/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com