Hiển thị một vài dòng đầu tiên của tệp


24

Tôi có một thư mục chứa khá nhiều tập tin trong đó. Tôi muốn hiển thị như sau:

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

vv Làm thế nào tôi có thể làm điều đó?

Câu trả lời:


54

Bạn sử dụng headlệnh để làm điều này, với đối số -n với số lượng dòng từ mỗi tệp, như sau:

head -n3 *

hoặc là

head -n3 *.txt

Điều này cũng hoạt động cho một tập tin duy nhất:

head -n3 filename.txt

Giống như một nhận xét (Tôi thích sự sạch sẽ của giải pháp được đề xuất), lệnh này sẽ không ghi tên tập tin, mà chỉ là dòng đầu tiên của các tệp
luri

@luri - Thật sao? Trong headphiên bản Ubuntu, head (GNU coreutils) 8.5nó theo mặc định sẽ. Hoặc có thể bạn đang sử dụng một bí danh head --quiet?
sắp xếp

@luri: Nó cũng tạo ra tên tập tin cho tôi.
David Oneill

Chết tiệt ... đúng là bí danh (- thực tế, thay vì --quiet) và tôi không biết tại sao. Hai câu trả lời trong một để sắp xếp;)
luri

12

cái đầu

Bạn sử dụng headvới -ntùy chọn.

head -n 10 FILE

Điều này sẽ in mười dòng đầu tiên của một tập tin.

Một biến thể hữu ích khác sẽ là -n -NUMBER.

head -n -10 FILE

Điều này sẽ in tất cả trừ mười dòng cuối cùng của một tập tin.

Để giải quyết vấn đề của bạn và có được đầu ra mong muốn, bạn có thể làm như sau.

basename * && head -n NUMBER *

hoặc là

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

Điều này sẽ giúp bạn có đầu ra sau:

FILENAME
LINE ONE
LINE TWO
LINE THREE

4

Điều này sẽ làm những gì bạn muốn, hy vọng:

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

-printsẽ hiển thị tên tệp và phần còn lại (từ - exec) sẽ hiển thị 3 dòng đầu tiên của mỗi tệp

Thay đổi số theo nhu cầu của bạn ...


1

Để thêm tên tệp vào đầu ra đầu, sử dụng 'head -v'. Vì vậy, 'head -vn 3 * .html' mang lại cho tôi:

# 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>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.