Mostrar las primeras líneas de un archivo


24

Tengo una carpeta con bastantes archivos. Quiero mostrar lo siguiente:

filename_1
first line of file1
second line of file1
third line of file1
filename_2
first line of file2
second line of file2
third line of file2
filename_3
first line of file3
second line of file3
third line of file3

etc. ¿Cómo puedo hacer eso?

Respuestas:


54

Utiliza el headcomando para hacer esto, con el argumento -n con el número de líneas de cada archivo, así:

head -n3 *

o

head -n3 *.txt

Esto también funciona para un solo archivo:

head -n3 filename.txt

Solo como un comentario (me gusta la limpieza de la solución propuesta), este comando no escribirá los nombres de los archivos, sino solo las primeras líneas de los archivos
luri

@luri - ¿En serio? En la headversión de Ubuntu head (GNU coreutils) 8.5, por defecto lo hará. ¿O tal vez estás usando un alias head --quiet?
organizar el

@luri: También generó los nombres de archivo para mí.
David Oneill

Maldita sea, sí ... tenía un alias (- silencioso, en realidad, en lugar de --quiet) y no sé por qué. Dos respuestas en una para organizar;)
luri

12

cabeza

Usas headcon la -nopción.

head -n 10 FILE

Esto imprimirá las primeras diez líneas de un archivo.

Otra variación útil sería -n -NUMBER.

head -n -10 FILE

Esto imprimirá todas menos las últimas diez líneas de un archivo.

Para resolver su problema y obtener el resultado deseado, puede hacer lo siguiente.

basename * && head -n NUMBER *

o

basename *.FILETYPE && head -n NUMBER *.FILETYPE

Esto te dará el siguiente resultado:

FILENAME
LINE ONE
LINE TWO
LINE THREE

4

Esto hará lo que quieras, con suerte:

find . -print -exec head {} -n 3 \;

-printmostrará el nombre del archivo y el resto (desde - exec) mostrará las primeras 3 líneas de cada archivo

Cambia el número de acuerdo a tus necesidades ...


1

Para agregar el nombre del archivo a la salida del encabezado use 'head -v'. Entonces 'head -vn 3 * .html' me da:

# head -vn 3 *.html
==> WebInfo.html <==
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>

==> convert.html <==
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>

==> misc.html <==
<html>
<head>
<title>WIP</title>
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.