gpt4 book ai didi

linux - 如何使用 grep 或 awk 处理特定列(使用文本文件中的关键字)

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:37:30 25 4
gpt4 key购买 nike

我已经尝试了很多 grep 和 awk 命令的组合来处理文件中的文本。

这是此类客户的列表:

John,Mills,81,Crescent,New York,NY,john@mills.com,19/02/1954

我试图将这些记录分成两类,MEN 和 FEMALES。

我有一份大约 5000 个女性名字的列表,所有这些都是纯文本的,都在一个文件中。

如何“grep”第一列(因为我只匹配名字)但仍然打印整个客户记录?

我发现“剪切”第一列和 grep --file=female.names.txt 很容易,但这样就不会再打印整个记录了。

我知道 awk 选项,但在那种情况下我不知道如何从文件中读取女性名字。

awk -F ',' ' { if($1==" ???Filename??? ") print $0} '

非常感谢!

最佳答案

您可以使用 Awk 执行此操作:

awk -F, 'NR==FNR{a[$0]; next} ($1 in a)' female.names.txt file.csv 

将打印包含在文件 female.names.txt 中找到的任何名字的 csv 文件行。

awk -F, 'NR==FNR{a[$0]; next} !($1 in a)' female.names.txt file.csv 

将输出在 female.names.txt 中找不到的行。

这假设您的 female.names.txt 文件的格式类似于:

Heather
Irene
Jane

关于linux - 如何使用 grep 或 awk 处理特定列(使用文本文件中的关键字),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25194664/

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