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ó.
In số N dòng đầu tiên
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
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 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
In N số dòng cuối cùng
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
In các dòng sau một dòng nhất định
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
In N ký tự cuối cùng của tệp
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/









Bình luận (0
)