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


24

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

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

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

Ответы:


54

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

head -n3 *

или

head -n3 *.txt

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

head -n3 filename.txt

Так же, как комментарий (мне действительно нравится чистота предложенного решения), эта команда не будет записывать имена файлов, а только первые строки файлов
luri

@luri - Правда? В headверсии Ubuntu head (GNU coreutils) 8.5это по умолчанию будет. Или, может быть, вы используете псевдоним head --quiet?
устроить

@luri: Он также вывел имена файлов для меня.
Дэвид Онеилл

Черт, да ... это был псевдоним (на самом деле - тихий, а не - тихий), и я не знаю почему. Два ответа в одном для аранжировки;)
Лури

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

4

Надеюсь, это будет делать то, что вы хотите:

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

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

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


1

Чтобы добавить имя файла в вывод head, используйте '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>
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.