Có rất nhiều lệnh và công cụ Linux được sử dụng để xử lý các file 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 file mà thay vào đó là một phần cụ thể của nó. Bạn có biết rằng mình 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 file 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.
Sử dụng lệnh head để xử lý văn bản trên Linux
Lệnh head được sử dụng để in ra các phần ban đầu của file. Nó đọc các file từ đầu. Nếu bạn có một file chứa hơn một nghìn dòng, sẽ rất phức tạp để mở và đọc file đó. 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 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
Để biết một số cách sử dụng lệnh này, vui lòng tham khảo bài viết: 7 cách sử dụng lệnh Head trong Linux để biết thêm chi tiết.
Cách dùng lệnh head để xử lý văn bản
Hãy tạo một file: number.txt. Trong file, 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ỳ file nào muốn chọn, nhưng hãy đảm bảo rằng file đó có ít nhất 11 dòng.
Sử dụng lệnh head mặc định
Theo mặc định, lệnh head in ra 10 dòng văn bản đầu tiên trong file. Hãy dùng thử với file number.txt bằng cách thực hiện lệnh này trong terminal:
head numbers.txt
Nó sẽ in ra 10 dòng đầu tiên của file:
one
two
three
four
five
six
seven
eight
nine
ten
Lưu ý: Nếu file có ít hơn 10 dòng, lệnh head sẽ hiển thị tất cả các dòng hiện có.
In N số dòng đầ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 3 dòng đầu tiên của file number.txt, hãy thực thi 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ư việc có thể xuất ra những dòng đầu tiên của văn bản, bạn cũng có thể loại trừ N dòng cuối cùng khi xuất. 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 file 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 file
Lệnh head cũng có tùy chọn để in số ký tự hoặc byte đầu tiên trong file. 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 lệnh:
head -c 10 numbers.txt
Kết quả:
one
two
th
Sử dụng lệnh tail để xử lý văn bản trên Linux
Lệnh tail in những dòng cuối cùng của file. Nó đọc các file từ phần cuối và xuất ra các dòng kết thúc.
Cú pháp lệnh tail
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 thực thi lệnh:
man tail
Cách dùng lệnh tail để xử lý văn bản
Bài viết sẽ sử dụng file number.txt đã được tạo cho các ví dụ sau.
Sử dụng lệnh tail mặc định
Lệnh tail xuất ra 10 dòng cuối cùng của file 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 N 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à là một số cụ thể, bạn có thể sử dụng tùy chọn -n để đạt được điều đó. Để in 4 dòng cuối cùng của file number.txt, hãy thực thi lệnh này:
tail -n 4 numbers.txt
Kết quả:
seventeen
eighteen
nineteen
twenty
In các 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 tùy chọn -n cùng với một số dương để đạt được điều đó. Để in đầu ra của file number.txt từ dòng thứ 17, hãy thực thi 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 file
Cũng giống như lệnh head, bạn có thể in một vài ký tự cuối cùng trong file bằng cách sử dụng tùy chọn -c. Để in 10 ký tự cuối cùng của file number.txt, hãy thực thi lệnh này:
tail -c 10 numbers.txt
Kết quả:
en
twenty
Sử dụng các lệnh head và tail với nhiều file
Bạn cũng có thể sử dụng head và tail để in nhiều file 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 file:
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 cách sử dụng ký hiệu |. Biểu tượng | 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ứ 6, thứ 7 và thứ 8, bạn có thể thực thi lệnh này:
head -n 8 numbers.txt | tail -n 3
Kết quả:
six
seven
eight
Trong lệnh nói trên, lệnh head hiển thị 8 dòng đầu tiên của file, sau đó đầu ra được chuyển cho lệnh tail, lệnh này sẽ in 3 dòng cuối cùng của đầu ra được chuyển hướng tới.
Head và tail cung cấp 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 file văn bản một cách hiệu quả. 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 riêng.
Ngoài head và tail, có rất nhiều lệnh thao tác văn bản và file khác có sẵn cho người dùng Linux.