Cách sử dụng lệnh head và tail để xử lý văn bản trên Linux

Có rất nhiều lệnh và công cụ Linux được sử dụng để xử lý các tệp văn bản. Nhưng có những lúc bạn không muốn đọc toàn bộ nội dung của một tập tin mà thay vào đó là một phần cụ thể của nó. Bạn có biết rằng bạn có thể sử dụng lệnh head và tail trên Linux để xuất ra phần đầu và phần cuối của một tệp tin tương ứng không?
Đọc tiếp để khám phá cách bạn có thể sử dụng hai lệnh này để xử lý và thao tác hiệu quả văn bản trên Linux.
Mục Lục
Lệnh đứng đầu là gì?
Lệnh head được sử dụng để in ra các phần ban đầu của tệp. Nó đọc các tập tin từ đầu. Nếu bạn có một tệp có hơn một nghìn dòng, sẽ rất phức tạp để mở nó và đọc. Bạn có thể dễ dàng in ra một vài dòng từ đầu bằng lệnh head.
Cú pháp lệnh head
Cú pháp cơ bản của lệnh head là:
head [option] [file]
Có nhiều tùy chọn có sẵn để sử dụng cùng với lệnh head, một số tùy chọn trong số đó sẽ được thảo luận sau. Để nhận trợ giúp về dòng lệnh liên quan đến lệnh head, hãy kiểm tra trang hướng dẫn sử dụng của nó bằng cách chạy:
man head
Cách sử dụng lệnh head
Đối với ví dụ này, hãy tạo một tệp: number.txt. Trong tệp, liệt kê các số từ một đến 20 bằng chữ. Bạn có thể chọn sử dụng bất kỳ tệp nào bạn chọn, nhưng hãy đảm bảo rằng tệp đó có ít nhất 11 dòng.
Sử dụng Lệnh đầu mặc định
Theo mặc định, lệnh head in ra 10 dòng văn bản đầu tiên trong tệp. Hãy dùng thử với tệp number.txt bằng cách thực hiện lệnh này trong thiết bị đầu cuối của bạn:
head numbers.txt
Nó sẽ in ra 10 dòng đầu tiên của tệp:
one
two
three
four
five
six
seven
eight
nine
ten
Nếu tệp có ít hơn 10 dòng, lệnh head sẽ in tất cả các dòng hiện có.
In số dòng N đầu tiên
Bạn có thể sử dụng lệnh head để in một số dòng cụ thể thay vì mặc định là 10. Để in ba dòng đầu tiên của tệp number.txt, hãy thực hiện lệnh này:
head -n 3 numbers.txt
Kết quả:
one
two
three
Loại trừ N dòng cuối cùng bằng lệnh head
Giống như bạn có thể in ra những dòng đầu tiên của văn bản, bạn cũng có thể quyết định loại trừ N dòng cuối cùng khi in. Bạn có thể làm điều này bằng cách sử dụng một số âm cho tham số N.
Để loại trừ 15 dòng cuối cùng của tệp number.txt, hãy chạy:
head -n -15 numbers.txt
Kết quả:
one
two
three
four
five
In N ký tự đầu tiên của tệp
Lệnh head cũng có tùy chọn để in số ký tự hoặc byte đầu tiên trong tệp. Bạn có thể làm điều này bằng cách sử dụng -c quyền mua. Để in ra 10 ký tự đầu tiên, hãy sử dụng:
head -c 10 numbers.txt
Đầu ra:
one
two
th
Lệnh đuôi là gì?
Như tên của nó, lệnh tail in những dòng cuối cùng của tệp. Nó đọc các tệp từ phần cuối và xuất ra các dòng kết thúc.
Cú pháp lệnh đuôi
Cú pháp cơ bản của lệnh tail là:
tail [option] [file]
Để biết thêm thông tin về lệnh tail, hãy kiểm tra trang hướng dẫn sử dụng của nó bằng cách phát hành:
man tail
Cách sử dụng lệnh tail
Chúng tôi sẽ sử dụng tệp number.txt đã được tạo cho các ví dụ sau.
Sử dụng Lệnh đuôi mặc định
Lệnh tail xuất ra 10 dòng cuối cùng của tệp khi được sử dụng mà không có bất kỳ tùy chọn đặc biệt nào. Ví dụ:
tail numbers.txt
Đầu ra sẽ hiển thị 10 dòng cuối cùng như đã đề cập:
eleven
twelve
thirteen
fourteen
fifteen
sixteen
seventeen
eighteen
nineteen
twenty
In số dòng N cuối cùng
Trong trường hợp bạn không muốn in 10 dòng cuối cùng mà là một số cụ thể, bạn có thể sử dụng -N tùy chọn để đạt được điều đó. Để in bốn dòng cuối cùng của tệp number.txt, hãy thực hiện lệnh này:
tail -n 4 numbers.txt
Kết quả:
seventeen
eighteen
nineteen
twenty
In dòng sau một dòng cụ thể
Nếu bạn muốn bắt đầu từ một dòng cụ thể N, bạn có thể sử dụng -N cùng với một số dương để đạt được điều đó. Để in đầu ra của tệp số.txt từ dòng thứ 17, hãy thực hiện lệnh này:
tail -n +17 numbers.txt
Kết quả:
seventeen
eighteen
nineteen
twenty
In N ký tự cuối cùng của tệp
Cũng giống như lệnh head, bạn có thể in một vài ký tự cuối cùng trong tệp bằng cách sử dụng -c quyền mua. Để in 10 ký tự cuối cùng của tệp number.txt, hãy thực hiện lệnh này:
tail -c 10 numbers.txt
Kết quả:
en
twenty
Sử dụng các lệnh đầu và đuôi với nhiều tệp
Bạn cũng có thể sử dụng đầu và đuôi để in nhiều tệp cùng một lúc. Đây là cú pháp để sử dụng các lệnh với nhiều đầu vào tệp:
head [option] [file1] [file2]
tail [option] [file1] [file2]
Sử dụng các lệnh đầu và đuôi cùng nhau
Bạn thậm chí có thể sử dụng head và tail trong cùng một lệnh bằng cách sử dụng ký hiệu ống. Biểu tượng ống dẫn chuyển hướng đầu ra của một lệnh dưới dạng đầu vào cho lệnh khác.
Ví dụ: để có dòng thứ sáu, thứ bảy và thứ tám, bạn có thể thực hiện lệnh này:
head -n 8 numbers.txt | tail -n 3
Kết quả:
six
seven
eight
Trong một lớp lót nói trên, lệnh head hiển thị tám dòng đầu tiên của tệp, sau đó đầu ra được chuyển cho lệnh tail, lệnh này sẽ in ba dòng cuối cùng của đầu ra được chuyển hướng.
head and tail: Các lệnh thao tác văn bản hữu ích
Linux cung cấp rất nhiều lệnh để giúp bạn thao tác và xử lý các tệp văn bản một cách hiệu quả, và lệnh head và tail chỉ là hai trong số rất nhiều lệnh. Các lệnh thao tác văn bản phổ biến nhất bao gồm grep, uniq, sort, sed, awk, v.v. Mỗi lệnh trong số chúng đáp ứng một mục đích khác nhau với bộ tính năng độc đáo của nó.
Ngoài head và tail, có rất nhiều lệnh thao tác văn bản và tệp khác có sẵn cho người dùng Linux.