awk/Unix 分组依据 [英] Awk/Unix group by

查看:25
本文介绍了awk/Unix 分组依据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有这个文本文件:

name, age
joe,42
jim,20
bob,15
mike,24
mike,15
mike,54
bob,21

试图得到这个(计数):

Trying to get this (count):

joe 1
jim 1
bob 2
mike 3

谢谢,

推荐答案

$ awk -F, 'NR>1{arr[$1]++}END{for (a in arr) print a, arr[a]}' file.txt
joe 1
jim 1
mike 3
bob 2

说明

  • -F,,
  • 上拆分
  • NR>1 处理第 1 行之后的行
  • arr[$1]++ 增量数组arr(用,分割)以第一列为键
  • END{} 块在处理文件结束时执行
  • for (a in arr) 使用 a 键迭代 arr
  • print a 打印 key , arr[a] 数组 with a key
  • EXPLANATIONS

    • -F, splits on ,
    • NR>1 treat lines after line 1
    • arr[$1]++ increment array arr (split with ,) with first column as key
    • END{} block is executed at the end of processing the file
    • for (a in arr) iterating over arr with a key
    • print a print key , arr[a] array with a key
    • 这篇关于awk/Unix 分组依据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆