Нужно рассчитать количество элементов в столбце 1, которые находятся в пределах определенного диапазона дат в столбце 6, с помощью команд - PullRequest
0 голосов
/ 11 февраля 2020

Итак, у меня есть файл CSV с 21 столбцом. Столбец 1 - это author_ID, а столбец 6 - дата публикации sh. Я рассчитываю вывести общее количество author_ID, которые находятся в диапазоне дат с 01.01.2017 по 0:00 до 31.12.2017 24:00. Таким образом, общее количество author_IDs в 2017 году.

1 Ответ

0 голосов
/ 11 февраля 2020

Вы можете использовать awk, чтобы проверить год из столбца 6, чтобы увидеть, будет ли это 2017, затем вывести столбец 1, если он есть, и использовать «sort -u», чтобы найти уникальные записи.

например

awk -F, '$6 ~ /..?\/..?\/2017 ..?:../ {print $1}' input.csv | sort -u

Что в основном означает печать первого столбца из любых строк, где 6-й столбец соответствует одному или двум символам, после которых следует / /, за которыми следует один или два символа, после которых следует / / до 2017 года и пробел, за которым следуют один или два символа, за которыми следует двоеточие, за которым следуют любые два символа.

РЕДАКТИРОВАТЬ: Если диапазон дат становится более точным c, чем за весь год (например, с 27.02.2016 02:35 - 10.02.2017 21:15), вы можете посмотреть на преобразование строки даты (MM/DD/YYYY HH:MM) в метку времени эпохи (количество секунд с начала эпохи) и делать сравнение на этом. awk функции времени могут быть использованы для этой манипуляции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...