AWK разделенный столбец, количество вхождений второй разделенной переменной

Я хотел бы использовать awk для разделения столбца одного файла на » («и подсчета количества вхождений каждой второй переменной команды split.

cluster1(2 genes, 2 taxa):  column2 column 3
cluster1(2 genes, 2 taxa):  column2 column 3
cluster1(3 genes, 2 taxa):  column2 column 3
cluster1(3 genes, 2 taxa):  column2 column 3
cluster1(4 genes, 2 taxa):  column2 column 3

Так что мой выход будет

2 genes, 2 taxa = 2
3 genes, 2 taxa = 2
4 genes, 2 taxa = 1

Спасибо за помощь,
Кейт

1 ответ

  1. $ awk -F '[()]' '{arr[]++} END{for(i in arr) print i " = " arr[i]}' data 
    4 genes, 2 taxa = 1
    3 genes, 2 taxa = 2
    2 genes, 2 taxa = 2
    

    или подсчет трубопроводов с помощью uniq:

    $ grep -oP '(?<=\().*(?=\))' data | uniq -c | awk '{print ,,, " =",
    	
    $ awk -F '[()]' '{arr[$2]++} END{for(i in arr) print i " = " arr[i]}' data 
    4 genes, 2 taxa = 1
    3 genes, 2 taxa = 2
    2 genes, 2 taxa = 2
    

    or a pipeline counting using uniq:

    $ grep -oP '(?<=\().*(?=\))' data | uniq -c | awk '{print $2,$3,$4,$5 " =",$1}'
    2 genes, 2 taxa = 2
    3 genes, 2 taxa = 2
    4 genes, 2 taxa = 1
    

    }'
    2 genes, 2 taxa = 2
    3 genes, 2 taxa = 2
    4 genes, 2 taxa = 1