Pregunta

Deseo emitir todas las líneas entre A y B en un archivo.

esto funciona, pero parece un exceso:

head -n 900 file.txt | tail -n 100

Mi falta de conocimiento de Unix parece ser el límite aquí. ¿Alguna sugerencia?

¿Fue útil?

Solución

sed -n '800,900p' file.txt

Esto imprimirá (p) líneas 800 a través de 900, incluyendo tanto la línea 800 y 900 (es decir, 101 líneas en total). No va a imprimir cualquier otra línea (-n).

Adjust Desde 800 a 801 y / o 900 a 899 a hacer que haga exactamente lo que piensa "entre 800 y 900" debe significar en su caso.

Otros consejos

encontrado una forma más bonita: Uso de sed, para imprimir sólo las líneas entre A y B:

sed -n -e 800,900p filename.txt

A partir de la entrada en el blog: Uso de sed para extraer líneas en un archivo de texto

Una forma lo estoy usando es encontrar (y dif) secciones similares de archivos:

 sed -n -e 705,830p mnetframe.css > tmp1; \
 sed -n -e 830,955p mnetframe.css > tmp2; \
 diff --side-by-side tmp1 tmp2

Lo que me dará una buena comparación lado a lado de las secciones similares de un archivo:)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top