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

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

Chia sẻ kiến thức 30/06/2023

head và tail là hai trong số các lệnh được sử dụng phổ biến nhất để thao tác văn bản trên Linux. Đây là cách bạn có thể sử dụng chúng.

 

Có nhiều lệnh và công cụ Linux được sử dụng để xử lý 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 tệp mà muốn đọc một phần cụ thể của tệp đó. Bạn có biết rằng bạn có thể sử dụng lệnh head và tail trên Linux để xuất phần đầu và phần cuối của một tệp tương ứng không?

Bài viết dưới đây hướng dẫn cách sử dụng hai lệnh này để xử lý và thao tác văn bản một cách hiệu quả trên Linux.

 

Lệnh head là gì?

Lệnh head được dùng để in ra các phần đầu tiên 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 khó mở và đọc nó. Bạn có thể dễ dàng in ra một vài dòng trên cùng bằng lệnh head.

Cú pháp lệnh head

Cú pháp cơ bản của lệnh là:

head [option] [file]

Để nhận trợ giúp dòng lệnh liên quan đến lệnh head, hãy kiểm tra trang hướng dẫn của nó bằng cách chạy:

man head

Cách sử dụng lệnh head

Trong ví dụ này, hãy tạo một tệp: numbers.txt. Trong tệp, liệt kê các số từ 1 đến 20 bằng chữ. Bạn có thể chọn sử dụng bất kỳ tệp nào, nhưng hãy đảm bảo rằng tệp đó có ít nhất 11 dòng.

Sử dụng lệnh head mặc định

Lệnh head in ra 10 dòng đầu tiên trong tệp văn bản theo mặc định. Hãy dùng thử với tệp numbers.txt bằng cách thực hiện lệnh này trong terminal của bạn:

head numbers.txt

Lệnh 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ó.

Bạn có thể dùng lệnh head để in một số dòng nhất định. Ví dụ để in ba dòng đầu tiên của tệp numbers.txt, hãy thực hiện lệnh sau:

 
head -n 3 numbers.txt

Kết quả:

one
two
three

Loại trừ N dòng cuối cùng

Bạn cũng có thể dùng lệnh head để loại trừ N dòng cuối cùng khi in. Bạn có thể thực hiện việc này bằng cách sử dụng số âm cho tham số N.

Để loại trừ 15 dòng cuối cùng của tệp numbers.txt, hãy chạy:

head -n -15 numbers.txt

Kết quả:

one
two
three
four
five

Lệnh head cũng có tùy chọn in số ký tự hoặc byte đầu tiên trong một tệp. Bạn có thể làm điều này bằng cách sử dụng tùy chọn -c . Để 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 tail là gì?

Lệnh này in các dòng cuối cùng của tệp. Nó đọc các tệp từ cuối và xuất ra các dòng cuối. 

Cú pháp lệnh tail

Cú pháp cơ bản của lệnh 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 của nó bằng cách chạy: 

 man tail

Cách sử dụng lệnh tail

Chúng ta sẽ sử dụng tệp numbers.txt đã tạo sẵn cho các ví dụ sau.

Sử dụng lệnh tail mặc định

Lệnh tail xuất 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 là 10 dòng cuối cùng:

eleven
twelve
thirteen
fourteen
fifteen
sixteen
seventeen
eighteen
nineteen
twenty

Trong trường hợp bạn không muốn in 10 dòng cuối cùng mà chỉ in một số cụ thể, bạn có thể sử dụng tùy chọn -n để làm điều đó. Để in bốn dòng cuối cùng của tệp numbers.txt, hãy thực hiện lệnh sau:

 
tail -n 4 numbers.txt

Kết quả:

seventeen
eighteen
nineteen
twenty

Nếu bạn muốn bắt đầu từ một dòng N nhất định, bạn có thể sử dụng tùy chọn -n bên cạnh một số dương để làm điều đó. Để in đầu ra của tệp numbers.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

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 tùy chọn -c. Để in 10 ký tự cuối cùng của tệp numbers.txt, hãy thực hiện lệnh sau:

tail -c 10 numbers.txt

Kết quả:

en
twenty

Sử dụng các lệnh head và tail với nhiều tệp

Bạn cũng có thể dùng lệnh head và tail để 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 tệp đầu vào:

head [option] [file1] [file2]
tail [option] [file1] [file2]

Sử dụng các lệnh head và tail 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 ký hiệu|. Biểu tượng | chuyển hướng đầu ra của một lệnh làm đầu vào cho một lệnh khác.

Ví dụ: để nhận cá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 phần một đã nói ở trên, lệnh head hiển thị 8 dòng đầu tiên của tệp, sau đó đầu ra được chuyển sang lệnh tail, lệnh này in 3 dòng cuối cùng của đầu ra vừa nhận.

head và tail: Các lệnh thao tác văn bản hữu ích

Hy vọng sau bài viết này, bạn đọc đã biết cách sử dụng lệnh head và tail trong Linux. Nếu có bất kỳ câu hỏi nào, hãy để lại dưới phần bình luận nhé. 

>>> Nếu bạn đang có nhu cầu học lập trình trực tuyến, tìm hiểu ngay tại đây:

Vân Nguyễn

Dịch từ: https://www.makeuseof.com/text-processing-using-head-and-tail-commands-linux/

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, phường Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        

Cơ quan chủ quản: Công ty Cổ phần Giáo dục Trực tuyến FUNiX
MST: 0108171240 do Sở kế hoạch và Đầu tư thành phố Hà Nội cấp ngày 27 tháng 02 năm 2018
Địa chỉ:
Văn phòng Hà Nội: Tầng 4, Tòa nhà 25T2, Đường Nguyễn Thị Thập, phường Yên Hòa, Hà Nội.
Văn phòng TP.HCM: Lầu 8, Tòa nhà Giày Việt Plaza 180-182 Lý Chính Thắng, phường Nhiêu Lộc, TP. Hồ Chí Minh.
Hotline: 078 231 3602 – Email: info@funix.edu.vn

yêu cầu gọi lại