Ответ
Да, Head — это стандартная утилита в Linux для вывода первых строк файла. В Go можно реализовать аналогичную функциональность:
package main
import (
"bufio"
"fmt"
"os"
)
func head(filename string, lines int) error {
file, err := os.Open(filename)
if err != nil {
return err
}
defer file.Close()
scanner := bufio.NewScanner(file)
for i := 0; i < lines && scanner.Scan(); i++ {
fmt.Println(scanner.Text())
}
return scanner.Err()
}
func main() {
err := head("example.txt", 10)
if err != nil {
fmt.Println("Error:", err)
}
}
Ключевые моменты:
- Используем
bufio.Scannerдля построчного чтения - Ограничиваем вывод указанным количеством строк
- Обрабатываем возможные ошибки открытия файла и чтения
В отличие от системной утилиты, это решение кроссплатформенно и может быть встроено в Go-приложение.