varios texto patrones letras ejemplos crear con comandos comando buscar basicos archivos archivo linux bash unix sh

linux - texto - Cómo mostrar todas las líneas de la línea n de un archivo en Unix



crear archivo en linux (6)

El comando awk puede hacer esto imprimiendo solo líneas, el número de registro NR es tres o más:

awk ''NR>=3'' input_file_name

También puede pasar el valor a awk usando una variable si es necesario:

awk -v n=3 ''NR>=n'' input_file_name

(y también puede usar -vn=${num} para usar una variable de entorno).

Hay muchas otras herramientas que puede usar para hacer el mismo trabajo, tail , sed y perl entre ellas o, ya que este es un sitio de preguntas y respuestas sobre programación, simplemente haga su propio trabajo:

#include <stdio.h> int main (void) { // Need character and # of newlines to skip. int ch, newlines = 2; // Loop until EOF or first lines skipped, exit on EOF. while ((ch = getchar()) != EOF) if ((ch == ''/n'') && (--newlines == 0)) break; if (ch == EOF) return 0; // Now just echo all other characters, then return. while ((ch = getchar()) != EOF) putchar (ch); return 0; }

Ahora normalmente no escribirías tu propio programa de filtro para esto, pero como pediste el comando más corto, puedes usar ese código fuente para crear un ejecutable llamado x para hacerlo:

x <input_file_name

Sería difícil encontrar un comando más corto que eso. Por supuesto, asumiendo que estás en un entorno UNIXy (específicamente, bash ), también podrías simplemente:

alias x awk ''NR>=3''

:-)

Quiero mostrar todas las líneas a partir de la línea nth. Diga, imprima la tercera línea de un archivo y todas las líneas siguientes hasta el final del archivo. ¿Hay un comando para eso?


Imprima, pero borre las líneas 1 a 2:

awk ''BEGIN{n=5}NR<=n{next}1'' file


Para mostrar desde la 5ª línea:

awk ''NR>4'' file


Puedes usar awk así:

sed ''1,2d'' filename

  • BEGIN{n=5} : antes de que comience el procesamiento del archivo, establece n en el número de líneas a saltar (5).
  • NR<=n{next} : omite el procesamiento si el número de línea es menor o igual que n .
  • 1 - taquigrafía para print todo lo demás.

puedes usar cola

Extracto de la página del manual:

-n, --lines=K output the last K lines, instead of the last 10; or use -n +K to output lines starting with the Kth

por ejemplo

tail -n +10 file

genera el contenido de los archivos comenzando con la línea 10


sed -n ''3,$p'' file

Esto es solo texto de relleno porque no aprecia las líneas de comando cortas.