Afficher les premières lignes d'un fichier


24

J'ai un dossier contenant pas mal de fichiers. Je souhaite afficher les éléments suivants:

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. Comment puis-je faire cela?

Réponses:


54

Vous utilisez la headcommande pour ce faire, avec l'argument -n avec le nombre de lignes de chaque fichier, comme ceci:

head -n3 *

ou

head -n3 *.txt

Cela fonctionne également pour un seul fichier:

head -n3 filename.txt

Tout comme un commentaire (j'aime la propreté de la solution proposée), cette commande n'écrira pas les noms de fichiers, mais seulement les premières lignes des fichiers
luri

@luri - Vraiment? Dans la headversion Ubuntu , head (GNU coreutils) 8.5il le sera par défaut. Ou peut-être que vous utilisez un alias head --quiet?
organiser

@luri: Il a également généré les noms de fichiers pour moi.
David Oneill

Merde oui ... il était aliasé (--silent, en fait, au lieu de --quiet) et je ne sais pas pourquoi. Deux réponses en une pour arranger;)
luri

12

tête

Vous utilisez headavec l' -noption.

head -n 10 FILE

Cela imprimera les dix premières lignes d'un fichier.

Une autre variante utile serait -n -NUMBER.

head -n -10 FILE

Cela imprimera tout sauf les dix dernières lignes d'un fichier.

Pour résoudre votre problème et obtenir la sortie souhaitée, vous pouvez procéder comme suit.

basename * && head -n NUMBER *

ou

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

Cela vous donnera la sortie suivante:

FILENAME
LINE ONE
LINE TWO
LINE THREE

4

J'espère que cela fera ce que vous voulez:

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

-printaffichera le nom du fichier et le reste (de - exec) affichera les 3 premières lignes de chaque fichier

Modifiez le nombre selon vos besoins ...


1

Pour ajouter le nom de fichier à la sortie head, utilisez 'head -v'. Alors 'head -vn 3 * .html' me donne:

# 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>
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.