gpt4 book ai didi

grep - grep 允许搜索重复项吗?

转载 作者:行者123 更新时间:2023-12-02 19:41:14 27 4
gpt4 key购买 nike

我有许多(近 100 个)大 csv 文件,第一列中有 sellID。我知道某些 sellID 在 2 个或更多文件中重复 2 次或多次。是否可以使用 grep 找到所有重复的 sellID(创建映射 sellID-file_name)?或者是否存在另一个用于此目的的开源应用程序?我的操作系统 - CentOS。

最佳答案

这是一个非常简单、有点粗糙的 awk 脚本,用于完成与您所描述的非常接近的事情:

#!/usr/bin/awk -f

{ if ($1 in seenbefore) {
printf( "%s\t%s\n", $1, seenbefore[$1]);
printf( "%s\t%s\n", $1, FILENAME);
}
seenbefore[$1]=FILENAME;
}

正如您希望猜测的那样,我们所做的就是为您在第一列/字段中找到的每个值构建一个关联数组(在 BEGIN 特殊中设置 FS阻止更改输入字段分隔符...以实现简单的 CSV 支持形式)。当我们遇到任何重复项时,我们会打印出重复项、我们之前看到它的文件以及当前的文件名。无论如何,我们都会使用当前文件的名称添加/更新数组。

使用更多代码,您可以存储和打印每个行的行号,将文件名/行号元组附加到列表中,并将所有输出移动到 END block ,在其中您可以将其总结为更多内容简洁的格式等等。

对于其中任何一个,我个人都会转向Python,其中数据类型更丰富(实际的列表和元组,而不是必须将它们连接成字符串或内置数组和数组),并且我可以获得更多的功能(一个实际的 CSV 解析器,可以处理各种风格的带引号的 CSV 和替代分隔符,并且生成排序结果非常容易)。

但是,希望这能让您走上正轨。

关于grep - grep 允许搜索重复项吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7658633/

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