Sobes.tech
Junior — Middle
107

Как получить последние 100 строк из очень большого файла логов, содержащего миллионы записей?

AI-дан жауап

sobes.tech AI

Чтобы получить последние 100 строк из очень большого файла логов, не читая весь файл целиком, можно использовать команду tail в Unix-подобных системах:

tail -n 100 /path/to/large_log_file.log

Команда tail эффективно читает файл с конца, что позволяет быстро получить последние строки без загрузки всего файла в память.

Если нужно реализовать это программно, например на Python, можно открыть файл в бинарном режиме и читать с конца блоками, пока не соберётся нужное количество строк. Но для большинства задач достаточно tail.

Пример на Python (упрощённый):

from collections import deque

def tail(filename, n=100):
    with open(filename, 'r') as f:
        return deque(f, n)

last_lines = tail('/path/to/large_log_file.log', 100)
for line in last_lines:
    print(line, end='')