golang obtiene el número de línea de la cadena en el archivo

Utilice el escáner para iterar el archivo línea por línea, aumentando el número de líneas en cada bucle.

Los ejemplos son los siguientes:

f,err := os.Open(path)
if err != nil {
    return 0,err
}
defer f.Close()
 
// Splits on newlines by default.
scanner := bufio.NewScanner(f)
 
line := 1
// https://golang.org/pkg/bufio/#Scanner.Scan
for scanner.Scan() {
    if strings.Contains(scanner.Text(),"yourstring") {
        return line,nil
    }
 
    line++
}
 
if err := scanner.Err(); err != nil {
    // Handle the error
}

Si necesita hacer esto en "miles de archivos" (según el comentario de otra respuesta), puede envolver este método en un grupo de trabajadores y ejecutarlo al mismo tiempo.
 

 

Supongo que te gusta

Origin blog.csdn.net/whatday/article/details/114547217
Recomendado
Clasificación