【问题标题】:Finding unique items in two rows in awk在 awk 中查找两行中的唯一项目
【发布时间】:2010-11-10 15:33:48
【问题描述】:

以下脚本为我提供了第四个字段中唯一元素的数量。

awk -F'\t' '$7 ~ /ECK/ {print $4}' filename.txt | sort | uniq | wc -l 

同样,我可以在 2nd Field 中找到独特的元素。但是我如何计算在第四个字段中但不在第二个字段中的唯一项目的数量。换句话说,第 4 个字段中没有出现在第 2 个字段中的唯一元素。

【问题讨论】:

    标签: unix scripting shell awk


    【解决方案1】:

    你可以在 awk 中完成这一切

    awk '
        {
            field_2[$2] = 1
            field_4[$4] = 1
        }
        END {
            for (item in field_4) {
                if (!(item in field_2)) 
                    print item;
            }
        }
    '
    

    【讨论】:

      【解决方案2】:

      这使用 Bash(或 ksh 或 zsh)进程替换,但如果您使用不支持该功能的 shell,您可以创建已排序的临时文件。

      join -t $'\t' -1 4 -2 2 -v 1 -o 1.4 <(sort -k4 inputfile) <(sort -k2 inputfile) | sort -u | wc -l
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-08-30
        • 2018-12-29
        • 1970-01-01
        • 2017-03-19
        • 2013-06-02
        • 1970-01-01
        相关资源
        最近更新 更多