Visualizza le prime righe di un file

22

Ho una cartella con parecchi file al suo interno. Voglio visualizzare quanto segue:

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

ecc. Come posso farlo?

    
posta David Oneill 04.03.2011 - 23:15

4 risposte

45

Usi il comando head per fare ciò, con l'argomento -n con il numero di linee da ogni file, come questo:

head -n3 *

o

head -n3 *.txt

Questo funziona anche per un singolo file:

head -n3 filename.txt
    
risposta data arrange 04.03.2011 - 23:54
12

testa

Utilizza head con l'opzione -n .

head -n 10 FILE

Questo stamperà le prime dieci righe di un file.

Un'altra variante utile sarebbe -n -NUMBER .

head -n -10 FILE

Questo stamperà tutte le ultime dieci righe di un file.

Per risolvere il tuo problema e ottenere l'output desiderato puoi fare quanto segue.

basename * && head -n NUMBER *

o

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

Questo ti mostrerà l'output seguente:

FILENAME
LINE ONE
LINE TWO
LINE THREE
    
risposta data Octavian Damiean 04.03.2011 - 23:23
4

Questo farà ciò che vuoi, speranzoso:

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

-print mostrerà il nome del file e il resto (da - exec ) mostrerà le prime 3 righe di ogni file

Cambia il numero in base alle tue esigenze ...

    
risposta data luri 04.03.2011 - 23:34
1

Per aggiungere il nome del file all'output head usa 'head -v'. Quindi 'head -vn 3 * .html' mi dà:

# 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>
    
risposta data user11848 05.03.2011 - 03:18

Leggi altre domande sui tag