linux - 查找文件中重复的名称

标签 linux bash awk grep

您好,我有一个包含姓氏和人名的 txt 文件,现在我想使用 egrep 只显示具有相同姓氏的人的名字。我不知道我该怎么做。感谢帮助 我的 txt 看起来像这样:

snow john
snow jack
miller george
mcconner jenny

输出应该是:

john 
jack

我目前尝试过运行:

cat names.txt | cut -d " " -f 1 | awk 'seen[$]++' 

...但这失败并出现错误:

awk: syntax error at source line 1
 context is
     >>> seen[$] <<<
awk: bailing out at source line 1

最佳答案

您可以使用 awk 的典型 2-pass 方法:

awk 'NR == FNR {freq[$1]++; next} freq[$1]>1{print $2}' file file

john
jack

引用: Effective AWK Programming

关于linux - 查找文件中重复的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47581438/

相关文章:

linux - 连接 SSH 并与另一个用户执行脚本

bash - 如何在执行前打印每个命令?

regex - 除了与范围结束模式匹配的行之外,如何使用 sed 打印一系列行?

linux - 使用 wget 和 SFTP 获取文件

git clone 不询问用户密码

unix - NF > 0 在 UNIX 编程环境中检查两次

bash - 使用 sed/awk 从 ini 样式文件中读取值

bash - 如何使用管道字符分隔符分隔字段

html - 使用 No-IP ddns 和 linux apache 时照片不显示

c - 我对内存分配和页面大小的理解正确吗?