我在Unix中有一个像这样的文件
name1 text text 123432re text
name2 text text 12344qp text
name3 text text1 134234ts text
name3 text text2 134234ts text
我想在第3列中找到所有用户名的所有不同类型的值,例如name1
,name2
和name3
。
如下所示:
name1 1
name2 1
name3 2
如何获得所需的结果?
答案 0 :(得分:1)
如果第4列之前的列中的文本不能包含空格,则以下内容应与gawk
一起使用:
gawk '{++vals[$1][$3];}
END {for (u in vals) {
c = 0;
for (t in vals[u]) { ++c; };
print u" "c;}
}' yourfile
(注意,gawk
支持多维数组,而标准awk
不支持,因此相同的解决方案无法使用标准awk
。)