Добавление всех значений в файл

444
Rhys Boyd

У меня есть огромный 313 000 строк журнала, который выглядит ниже. Я пытаюсь найти быстрый способ сложить всех игроков онлайн: (число) / 100. Так что просто сложите все (число) вместе.

Пример данных:

[04-28-2018 22:49:30] TPS: 20.0 Memory free: 2394.0/4551.0 (52%) Players online: 19/100 Total chunks loaded: 8413 Total entities: 1532 

регистрация Java

0

2 ответа на вопрос

1
Ian McGowan

Звучит как работа для awk! Предполагая, что формат несколько стабилен, следующий скрипт awk должен выполнить эту работу:

$ cat t1 [04-28-2018 22:49:30] TPS: 20.0 Memory free: 2394.0/4551.0 (52%) Players online: 20/100 Total chunks loaded: 8413 Total entities: 1532 [04-28-2018 22:49:30] TPS: 20.0 Memory free: 2394.0/4551.0 (52%) Players online: 20/100 Total chunks loaded: 8413 Total entities: 1532 [04-28-2018 22:49:30] TPS: 20.0 Memory free: 2394.0/4551.0 (52%) Players online: 20/100 Total chunks loaded: 8413 Total entities: 1532 [04-28-2018 22:49:30] TPS: 20.0 Memory free: 2394.0/4551.0 (52%) Players online: 20/100 Total chunks loaded: 8413 Total entities: 1532 [04-28-2018 22:49:30] TPS: 20.0 Memory free: 2394.0/4551.0 (52%) Players online: 20/100 Total chunks loaded: 8413 Total entities: 1532  $ awk ' END ' t1 100 

В основном шаги:

1) Присвойте позицию 11 каждой строки переменной po 2) Разбейте po на символ / и присвойте части массиву 3) Добавьте первый элемент массива a в переменную промежуточной суммы 4) Конец совпадений после всех данных прочитано, распечатать итоговую сумму

Если в файле есть другие данные, вы можете указать awk просто обрабатывать строки, соответствующие определенному шаблону, например:

$ awk '/TPS:/ END ' t1 

По умолчанию Awk устанавливается на Mac и Linux, и его можно бесплатно загрузить в Windows. См .: https://stackoverflow.com/q/21927944/988525 или быстрый поиск в Google. Cygwin или новая Windows Linux Subsystem немного больше настроены, но откроют мир замечательных инструментов, которые можно использовать для решения подобных проблем.

0
Ian McGowan

Если это разовый вопрос и его не нужно писать в сценарии, вы также можете загрузить файл в свою любимую программу для работы с электронными таблицами и использовать текст-столбцы для разделения данных. Цель состоит в том, чтобы закончить с игроками онлайн в одной колонке, которую можно суммировать, конечно. Более подробное руководство, но если данные грязные и разовые, это может быть полезным для очистки.