Поиск уникальных предметов в двух строках в awk - PullRequest
1 голос
/ 10 ноября 2010

Следующий скрипт дает мне количество уникальных элементов в 4-м поле.

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

Точно так же я могу найти уникальные элементы во 2-м поле. Но как рассчитать количество уникальных предметов, которые находятся в 4-м поле, но не во втором поле. Другими словами, уникальные элементы в 4-м поле, которые не появляются во 2-м поле.

Ответы [ 2 ]

2 голосов
/ 10 ноября 2010

Вы можете сделать все это в awk

awk '
    {
        field_2[$2] = 1
        field_4[$4] = 1
    }
    END {
        for (item in field_4) {
            if (!(item in field_2)) 
                print item;
        }
    }
'
0 голосов
/ 10 ноября 2010

При этом используется подстановка процесса Bash (или ksh или zsh), но вы можете создавать временные файлы, которые сортируются, если вы используете оболочку, которая не поддерживает это.

...