【发布时间】:2014-08-08 01:11:25
【问题描述】:
我尝试了多种 grep 和 awk 命令的组合来处理文件中的文本。
这是此类客户的列表:
John,Mills,81,Crescent,New York,NY,john@mills.com,19/02/1954
我试图将这些记录分为两类,男性和女性。
我有一个大约 5000 个女性名字的列表,全部都是纯文本,都在一个文件中。
如何“grep”第一列(因为我只匹配名字)但仍打印整个客户记录?
我发现“剪切”第一列和grep --file=female.names.txt 很容易,但这样就不会再打印整条记录了。
我知道 awk 选项,但在这种情况下,我不知道如何从文件中读取女性姓名。
awk -F ',' ' { if($1==" ???Filename??? ") print $0} '
非常感谢!
【问题讨论】:
-
嗯......我不会用右手打赌你的名单的准确性。为什么?因为 Andrea 在盎格鲁撒克逊语国家是一个“女性”名字,但在例如意大利。还有像香农这样的案例,两者都可以。只是说。
-
女性的反义词是男性,而不是男性。这是没有意义的,因为仅适用于男性或女性的英文名字就有很多(Leslie、Jackie、Hunter、Skylar、Billy、Erin、Reece 等等……)——我无法想象5000 个“女性名字”列表,其中没有一些名字会让一些男人坐起来说“嘿!”。
-
你们俩都是对的。我对“美国”名字进行了一些频率分析,然后转到了欧洲。 5000 个名字是美国、欧洲和一些中东的汇编。我还没有来自非洲的任何东西。你们的 cmets 会让我现在必须工作更多 :)