Виведіть перші кілька рядків файлу


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 - Дійсно? У 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 -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.