【问题标题】:Count of Special Characters by each column in awkawk 中每列的特殊字符数
【发布时间】:2014-11-07 00:54:07
【问题描述】:

我在下面有一个逗号分隔的文件,包含 3 列

101,daf*s,HJ
102*,dft,GH*
103,hh*f,FF
10*J,ff*H,P

我想按每列计算* 的数量,并希望使用 awk 输出如下所示的内容

Column 1:2
Column 2:3
Column 3:1

如果可能的话,我想让这段代码尽可能动态,如果列数也发生变化,代码应该能够按每列打印 * 的计数。

【问题讨论】:

    标签: unix awk scripting


    【解决方案1】:

    使用awk:

    awk -F, '{
        for (i=1; i<=NF; i++) a[i]+=gsub(/[*]/, "", $i)
    }
    END {
        for (i=1; i in a; i++) print "Column "i":"a[i]+0
    }' file
    Column 1:2
    Column 2:3
    Column 3:1
    

    将字段分隔符设置为,。遍历列并使用gsub 函数捕获每列的返回值并继续添加到数组中。

    END 块中,遍历列数并打印输出。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-18
      相关资源
      最近更新 更多