GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo mostrar ciertas líneas de un archivo de texto en Linux?

Solución 1:

sed -n '10000000,10000020p' filename

Es posible que pueda acelerarlo un poco así:

sed -n '10000000,10000020p; 10000021q' filename

En esos comandos, la opción -n causas sed para "suprimir la impresión automática del espacio patrón". El p comando "imprimir[s] el espacio del patrón actual" y el q comando "Salga inmediatamente del script sed sin procesar más entradas..." Las comillas son del sed man página.

Por cierto, su comando

tail -n 10000000 filename | head 10

comienza en la línea diez millonésima desde el final del archivo, mientras que su comando "medio" parecería comenzar en el diezmillonésimo desde el principio que sería equivalente a:

head -n 10000010 filename | tail 10

El problema es que para archivos sin ordenar con líneas de longitud variable, cualquier proceso tendrá que pasar por el archivo contando nuevas líneas. No hay forma de atajar eso.

Sin embargo, si el archivo está ordenado (un archivo de registro con marcas de tiempo, por ejemplo) o tiene líneas de longitud fija, puede buscar en el archivo en función de una posición de byte. En el ejemplo del archivo de registro, puede realizar una búsqueda binaria para un rango de veces como lo hace mi secuencia de comandos de Python aquí*. En el caso del archivo de longitud de registro fijo, es realmente fácil. Solo buscas linelength * linecount caracteres en el archivo.

Solución 2:

Descubrí el siguiente uso de sed

sed -n '10000000,+20p'  filename

¡Espero que sea útil para alguien!

Solución 3:

¡Es mi primera vez publicando aquí! De todos modos, este es fácil. Digamos que desea extraer la línea 8872 de su archivo llamado file.txt. Así es como lo haces:

gato -n archivo.txt | grep '^ *8872'

Ahora la pregunta es encontrar 20 líneas después de esto. Para lograr esto haces

gato -n archivo.txt | grep -A 20 '^ *8872'

Para las líneas alrededor o antes de ver los indicadores -B y -C en el manual de grep.


Linux
  1. Cómo agregar texto al final del archivo en Linux

  2. Cómo agregar fácilmente texto al final del archivo en Linux

  3. Cómo contar líneas en un archivo en UNIX/Linux

  4. Linux:grep desde ciertas líneas hasta el final del archivo

  5. Cómo descargar un archivo desde URL en Linux

Cómo mezclar líneas en un archivo en Linux

Cómo extraer direcciones de correo electrónico de un archivo de texto en Linux

Cómo agregar texto al comienzo del archivo en Linux

Cómo invertir líneas en un archivo por caracteres en Linux

Cómo quitar (^M) caracteres de un archivo en Linux

Cómo encontrar las líneas más largas en un archivo en Linux