Отобразить первые несколько строк файла

17

У меня есть папка с довольно большим количеством файлов. Я хочу показать следующее:

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

и т.д.. Как я могу это сделать?

    
задан David Oneill 04.03.2011 в 23:15
источник

4 ответа

40

Для этого используется команда head , с аргументом -n с количеством строк из каждого файла, например:

head -n3 *

или

head -n3 *.txt

Это также работает для одного файла:

head -n3 filename.txt
    
ответ дан arrange 04.03.2011 в 23:54
источник
12

голова

Вы используете head с опцией -n .

head -n 10 FILE

Это будет печатать первые десять строк файла.

Другим полезным вариантом будет -n -NUMBER .

head -n -10 FILE

Это будет печатать все, кроме последних десяти строк файла.

Чтобы решить вашу проблему и получить желаемый результат, вы можете сделать следующее.

basename * && head -n NUMBER *

или

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

Это даст вам следующий результат:

FILENAME
LINE ONE
LINE TWO
LINE THREE
    
ответ дан Octavian Damiean 04.03.2011 в 23:23
4

Это сделает то, что вы хотите, надеюсь:

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

-print покажет имя файла, а остальное (from - exec ) покажет первые 3 строки каждого файла

Измените число в соответствии с вашими потребностями ...

    
ответ дан luri 04.03.2011 в 23:34
1

Чтобы добавить имя файла в выходной поток, используйте 'head -v'. Итак, «head -vn 3 * .html» дает мне:

# 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>
    
ответ дан user11848 05.03.2011 в 03:18