Junior — Middle
Bir günlük dosyasının son on satırını nasıl alabilirsiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go dilinde, bir log dosyasının son on satırını almak için dosyayı satır satır okuyabilir ve son 10 satırı döngüsel tamponda (örneğin, sabit boyutlu bir dilim) saklayabilirsiniz. Bu, bellek açısından etkilidir ve tüm dosyayı yüklemeyi gerektirmez.
Örnek:
package main
import (
"bufio"
"fmt"
"os"
)
func tail(filename string, n int) ([]string, error) {
file, err := os.Open(filename)
if err != nil {
return nil, err
}
defer file.Close()
lines := make([]string, 0, n)
scanner := bufio.NewScanner(file)
for scanner.Scan() {
if len(lines) == n {
lines = lines[1:]
}
lines = append(lines, scanner.Text())
}
if err := scanner.Err(); err != nil {
return nil, err
}
return lines, nil
}
func main() {
lines, err := tail("logfile.log", 10)
if err != nil {
fmt.Println("Hata:", err)
return
}
for _, line := range lines {
fmt.Println(line)
}
}
Bu kod, dosyayı satır satır okur ve sadece son 10 satırı saklar.