Wyświetl kilka pierwszych wierszy pliku

24

Mam folder z kilkoma plikami. Chcę wyświetlić następujące informacje:

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

itp. Jak mogę to zrobić?

David Oneill
źródło

Odpowiedzi:

54

headAby to zrobić, użyj komendy, używając argumentu -n z liczbą wierszy z każdego pliku, jak poniżej:

head -n3 *

lub

head -n3 *.txt

Działa to również w przypadku pojedynczego pliku:

head -n3 filename.txt
zorganizować
źródło
Jako komentarz (podoba mi się czystość proponowanego rozwiązania), to polecenie nie wypisze nazw plików, ale tylko pierwsze wiersze plików
luri
@luri - Naprawdę? W headwersji Ubuntu będzie head (GNU coreutils) 8.5to domyślnie. A może używasz aliasu head --quiet?
umówić się na
@luri: Wypisał również nazwy plików.
David Oneill,
Cholera tak ... to było aliasy (właściwie - ciche, zamiast - ciche) i nie wiem dlaczego. Dwie odpowiedzi w jednej do uzgodnienia;)
luri
12

głowa

Używasz headz -nopcją.

head -n 10 FILE

Spowoduje to wydrukowanie pierwszych dziesięciu wierszy pliku.

Inną przydatną odmianą byłoby -n -NUMBER.

head -n -10 FILE

Spowoduje to wydrukowanie wszystkich oprócz dziesięciu ostatnich wierszy pliku.

Aby rozwiązać problem i uzyskać pożądaną wydajność, możesz wykonać następujące czynności.

basename * && head -n NUMBER *

lub

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

Otrzymasz następujące wyniki:

FILENAME
LINE ONE
LINE TWO
LINE THREE
Oktawian A. Damiean
źródło
4

Mam nadzieję, że zrobi to, co chcesz:

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

-printpokaże nazwę pliku, a reszta (od - exec) pokaże pierwsze 3 wiersze każdego pliku

Zmień numer zgodnie ze swoimi potrzebami ...

luri
źródło
1

Aby dodać nazwę pliku do wyjścia head, użyj „head -v”. Więc „head -vn 3 * .html” daje mi:

# 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>

źródło