Exibir as primeiras linhas de um arquivo


24

Eu tenho uma pasta com alguns arquivos nela. Quero exibir o seguinte:

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 Como posso fazer isso?

Respostas:


54

Você usa o headcomando para fazer isso, com o argumento -n com o número de linhas de cada arquivo, assim:

head -n3 *

ou

head -n3 *.txt

Isso também funciona para um único arquivo:

head -n3 filename.txt

Assim como um comentário (eu gosto da limpeza da solução proposta), este comando não irá escrever nomes de arquivos, mas apenas as primeiras linhas dos arquivos
Luri

@luri - Sério? Na headversão Ubuntu head (GNU coreutils) 8.5, por padrão, será. Ou talvez você esteja usando um alias head --quiet?
organize

@uri: Produziu os nomes dos arquivos para mim também.
David Oneill

Porra, sim ... era um alias (- silencioso, na verdade, em vez de - quieto) e não sei por quê. Duas respostas em uma para organizar;)
luri

12

cabeça

Você usa headcom a -nopção

head -n 10 FILE

Isso imprimirá as dez primeiras linhas de um arquivo.

Outra variação útil seria -n -NUMBER.

head -n -10 FILE

Isso imprimirá todas, exceto as últimas dez linhas de um arquivo.

Para resolver seu problema e obter a saída desejada, você pode fazer o seguinte.

basename * && head -n NUMBER *

ou

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

Isso fará com que você siga a seguinte saída:

FILENAME
LINE ONE
LINE TWO
LINE THREE

4

Isso fará o que você deseja, esperançosamente:

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

-printmostrará o nome do arquivo e o restante (de - exec) mostrará as 3 primeiras linhas de cada arquivo

Mude o número de acordo com suas necessidades ...


1

Para adicionar o nome do arquivo à saída do cabeçalho, use 'head -v'. Então 'head -vn 3 * .html' me fornece:

# 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>
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.