Чтобы подсчитать количество вхождений первого поля в текстовом файле

Возможно буфер с awk:

tail -n +0 -f some/file | awk '{b[NR] = $0} NR > 30 {print b[NR-30]; delete b[NR-30]} END {for (i = NR - 29; i <= NR; i++) print b[i]}'

Расширенный код awk:

{
    b[NR] = $0 # save the current line in a buffer array
}
NR > 30 { # once we have more than 30 lines
    print b[NR-30]; # print the line from 30 lines ago
    delete b[NR-30]; # and delete it
}
END { # once the pipe closes, print the rest
    for (i = NR - 29; i <= NR; i++)
        print b[i]
}
-2
25.06.2020, 10:35
1 ответ
awk '{ count[$1]++ } END { for (field in count) print field, count[field] }' file.txt

То есть использовать первое поле в качестве ключа в ассоциативном массиве count. Для каждой записи увеличивайте значение, соответствующее полю. В конце переберите ключи countи распечатайте их и соответствующие значения.

1
28.04.2021, 23:12

Теги

Похожие вопросы