Если вы приблизительно знаете размер последних двух строк, вы можете установить SOME_NUMBER
в качестве этого размера плюс несколько дополнительных байтов, чтобы убедиться, что вы всегда захватываете последние две строки, а затем сделать что-то вроде
file, err := os.Open(fileName)
if err != nil {
panic(err)
}
defer file.Close()
buf := make([]byte, SOME_NUMBER)
stat, err := os.Stat(fileName)
start := stat.Size() - SOME_NUMBER
_, err = file.ReadAt(buf, start)
if err != nil {
panic(err)
}
lines := strings.Split(string(start), "\n", -1)
lines = lines[len(lines)-2:]