加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

csv – 如何使用awk有条件地附加字段的出现?

发布时间:2020-12-14 00:43:50 所属栏目:Linux 来源:网络整理
导读:我有一个看起来像这样的文件: Level,MemberHIGH,JohnHIGH,PaulHIGH,GeorgeREG,JohnREG,PaulREG,Ringo 如果我想在第二列中附加数据出现的计数,这很有用: awk 'BEGIN{ FS=OFS="," }{ $0=$0 OFS (++a[$2]) }1' file 但我无法弄清楚如何添加if / else语句,以便
我有一个看起来像这样的文件:

Level,Member
HIGH,John
HIGH,Paul
HIGH,George
REG,John
REG,Paul
REG,Ringo

如果我想在第二列中附加数据出现的计数,这很有用:

awk 'BEGIN{ FS=OFS="," }{ $0=$0 OFS (++a[$2]) }1' file

但我无法弄清楚如何添加if / else语句,以便我可以有条件地按级别计数,以便我的输出如下所示:

Level,Member,1
HIGH,George,John,2
HIGH,Paul,1
REG,2
REG,3
REG,Ringo,1

请注意,当电平从HIGH变为REG时,计数开始.该文件已按级别排序,然后按成员排序.

解决方法

你的命令已经很好了.我刚刚更改了关联数组a []的关键字:

awk 'BEGIN{ FS=OFS="," }{ $0=$0 OFS (++a[$2$1]) }1' file

要么:

awk 'BEGIN{ FS=OFS="," }{ $0=$0 OFS (++a[$0]) }1' file

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读