Lệnh nl
là lệnh trong Linux dùng để hiển thị nội dung file văn bản kèm theo số dòng. Với khả năng tùy biến cao, nl
giúp người dùng dễ dàng theo dõi, kiểm tra hoặc định dạng nội dung file theo từng dòng một cách linh hoạt. Bài viết này sẽ giới thiệu chi tiết cú pháp của lệnh nl
, kèm theo 9 ví dụ thực tế như đánh số tất cả dòng, thay đổi bước nhảy, chỉ đánh số dòng khớp regex, v.v. Cuối cùng, bạn cũng sẽ được gợi ý giải pháp lưu trữ tối ưu từ Vietnix giúp cải thiện hiệu suất và tốc độ website đáng kể.
Điểm chính cần nắm
- Lệnh nl trong Linux là gì?: Giới thiệu lệnh
nl
, công dụng chính và cách hoạt động cơ bản trong hệ thống Linux. - Cú pháp lệnh nl: Trình bày cấu trúc cú pháp lệnh
nl
cùng các tùy chọn quan trọng khi sử dụng. - 9 ví dụ về lệnh nl trong Linux: Tổng hợp 9 ví dụ minh họa giúp hiểu rõ cách sử dụng
nl
trong nhiều tình huống thực tế. - Vietnix – Giải pháp lưu trữ tối ưu cho tốc độ và hiệu suất website: Giới thiệu dịch vụ hosting hiệu suất cao từ Vietnix, cùng các lợi ích và thông tin liên hệ.
- FAQ: Giải đáp các câu hỏi thường gặp liên quan đến lệnh
nl
trong Linux nhằm củng cố kiến thức và mở rộng hiểu biết.
Lệnh nl trong Linux là gì?
Lệnh nl
(viết tắt của number lines) là một tiện ích dòng lệnh trong Linux/Unix dùng để hiển thị nội dung của tệp văn bản với số dòng được đánh tự động. Khi thực thi, nl
sẽ đọc dữ liệu từ một tệp hoặc từ đầu vào chuẩn (STDIN), sau đó xuất nội dung đó ra đầu ra chuẩn (STDOUT) với các số dòng được chèn vào trước mỗi dòng văn bản theo các quy tắc nhất định.

Không giống như một số lệnh khác như cat -n
vốn chỉ đơn giản đánh số tất cả các dòng, nl
cho phép bạn tùy chỉnh cách đánh số, chẳng hạn như:
- Chỉ đánh số dòng không trống.
- Gộp các dòng trống liên tiếp thành một dòng logic.
- Đặt số bắt đầu, khoảng cách giữa các số dòng.
- Chỉ đánh số những dòng khớp biểu thức chính quy (regex).
- Tùy chỉnh định dạng và độ rộng hiển thị số dòng.
Cú pháp lệnh nl
Cú pháp cơ bản
nl [OPTION]... [FILE]...
Trong đó:
OPTION
: Các tùy chọn cho phép tùy chỉnh định dạng và cách đánh số dòng.FILE
: Tên tệp văn bản cần xử lý. Nếu không chỉ định tệp,nl
sẽ đọc từ đầu vào chuẩn (STDIN).
Các tùy chọn của lệnh nl phổ biến
Tùy chọn | Mô tả |
---|---|
-b NUMBER hoặc -bNUMBER | Quy định cách đánh số dòng nội dung. Ví dụ: -b a để đánh số tất cả các dòng, kể cả dòng trống. |
-i NUMBER hoặc -iNUMBER | Thiết lập bước nhảy giữa các số dòng (mặc định là 1). |
-n FORMAT hoặc -nNUMBER | Định dạng hiển thị số dòng: ln (canh trái), rn (canh phải), rz (canh phải + số 0). |
-v NUMBER hoặc -vNUMBER | Đặt số dòng bắt đầu (mặc định là 1). |
-l NUMBER hoặc -lNUMBER | Gộp nhóm NUMBER dòng trống liên tiếp thành một dòng logic duy nhất. |
-s STRING hoặc -sSTRING | Thêm chuỗi STRING sau số dòng (ví dụ: dấu hai chấm, dấu ba chấm,…). |
-w NUMBER hoặc -wNUMBER | Quy định số ký tự tối thiểu để hiển thị số dòng (mặc định là 6). |
9 ví dụ về lệnh nl trong Linux
Lưu ý
Trong các ví dụ minh họa bên dưới, giả sử bạn đang sử dụng một tệp có tên vietnix.txt
Nội dung của vietnix.txt
:
Chào mừng bạn đến với Vietnix!
Dịch vụ Hosting chất lượng cao
Firewall hiệu suất cao
SLA lên đến 99.99%
Hỗ trợ 24/7
Giá cả hợp lý
Hiển thị nội dung file với số dòng
Lệnh nl
đơn giản nhất là đánh số các dòng không trống trong file
nl vietnix.txt
Kết quả sẽ hiển thị số dòng trước mỗi dòng có nội dung, bỏ qua các dòng trống.

Đánh số tất cả các dòng, kể cả dòng trống
Để đánh số cả các dòng trống, dùng tùy chọn -b a
(all lines):
nl -b a vietnix.txt
Lệnh này sẽ đánh số tất cả dòng, bao gồm dòng trống.

Gộp nhiều dòng trống liên tiếp
Tùy chọn -l NUMBER
giúp gom nhóm NUMBER
dòng trống liên tiếp thành một dòng logic duy nhất khi đánh số. Ví dụ dưới đây gộp mỗi 2 dòng trống liên tiếp thành một dòng logic:
nl -b a -l 2 vietnix.txt
Nếu không dùng -l
, mỗi dòng trống sẽ được đánh số riêng.

Thay đổi bước nhảy số dòng
Mặc định số dòng tăng lên 1 mỗi dòng. Bạn có thể thay đổi bước nhảy này bằng -i NUMBER
. Ví dụ tăng số dòng mỗi lần thêm 3:
nl -i 3 vietnix.txt
Lưu ý số dòng đầu tiên vẫn bắt đầu từ 1.

Thay đổi số dòng bắt đầu
Mặc định số dòng bắt đầu từ 1. Dùng -v NUMBER
để thay đổi số dòng bắt đầu. Ví dụ bắt đầu đánh số từ 10:
nl -v 10 vietnix.txt

Thêm chuỗi sau số dòng
Bạn có thể thêm chuỗi ký tự bất kỳ sau số dòng với -s STRING
. Ví dụ thêm dấu -->
sau số dòng:
nl -s "--> " vietnix.txt

Thay đổi độ rộng cột số dòng
Độ rộng mặc định để hiển thị số dòng là 6 ký tự. Dùng -w NUMBER
để thay đổi độ rộng này. Ví dụ sử dụng độ rộng 4 ký tự:
nl -w 4 vietnix.txt
Điều này ảnh hưởng đến khoảng cách giữa số dòng và nội dung.

Chí đánh số những dòng khớp với biểu thức chính quy
Bạn có thể đánh số riêng các dòng thỏa mãn biểu thức chính quy với -b pREGEXP
. Ví dụ chỉ đánh số các dòng bắt đầu bằng chữ F
:
nl -b p^F vietnix.txt

Thay đổi định dạng hiển thị số dòng
Tùy chọn -n
cho phép chọn định dạng số dòng:
ln
: canh trái, không có số 0 đầu dòngrn
: canh phải, không có số 0 đầu dòng (mặc định)rz
: canh phải, có số 0 đầu dòng (leading zeros)
Ví dụ:
nl -n ln vietnix.txt
nl -n rn vietnix.txt
nl -n rz vietnix.txt

Vietnix – Giải pháp lưu trữ tối ưu cho tốc độ và hiệu suất website
Vietnix cung cấp dịch vụ VPS và hosting chất lượng cao, được thiết kế nhằm tối ưu tốc độ tải trang, đảm bảo hiệu suất ổn định và bảo mật toàn diện. Nhờ hệ thống máy chủ hiện đại đặt tại các datacenter hàng đầu cùng đội ngũ kỹ thuật nhiều kinh nghiệm hỗ trợ 24/7, Vietnix giúp website của bạn vận hành mượt mà, an toàn và luôn sẵn sàng trước mọi nhu cầu.
Bất kể bạn đang xây dựng blog cá nhân, website doanh nghiệp hay hệ thống thương mại điện tử, dịch vụ lưu trữ tại Vietnix luôn sẵn sàng mở rộng linh hoạt, dễ dàng quản lý và hỗ trợ kỹ thuật nhanh chóng – góp phần nâng cao trải nghiệm người dùng và hiệu quả vận hành.
Thông tin liên hệ:
- Website: https://vietnix.vn/
- Hotline: 1800 1093
- Email: sales@vietnix.com.vn
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, TP HCM.
Câu hỏi thường gặp
Có thể thay đổi định dạng số dòng trong nl
không?
Có. Dùng -n
với các tùy chọn: ln
(căn trái), rn
(căn phải), rz
(căn phải có thêm số 0).
Có thể dùng nl
với output của lệnh khác được không?
Được. Bạn có thể dùng pipe: `cat vietnix.txt
nl
có thể kết hợp regex để chỉ đánh số dòng phù hợp không?
Có. Dùng -b pREGEX
, ví dụ nl -b p^F vietnix.txt
để chỉ đánh số dòng bắt đầu bằng chữ F.
nl
và cat -n
khác nhau như thế nào?
cat -n
đánh số mọi dòng, kể cả dòng trống, còn nl
mặc định chỉ đánh số dòng có nội dung và hỗ trợ nhiều tùy chỉnh hơn.
Khi nào nên dùng nl
thay vì awk
để đánh số dòng?
Khi bạn chỉ cần đánh số đơn giản và không cần xử lý logic phức tạp, nl
nhanh gọn hơn awk
. Với nhu cầu tùy biến sâu, awk
phù hợp hơn.
Có thể dùng nl
để xử lý nhiều file cùng lúc không?
Có thể. Ví dụ: nl file1.txt file2.txt
sẽ nối nội dung và đánh số liên tục. Tuy nhiên, không thể đánh số lại từ đầu cho mỗi file.
Tại sao nl
mặc định không đánh số dòng trống?
Vì nl
coi dòng trống là không mang nội dung. Tuy nhiên, bạn có thể thay đổi hành vi này với -b a
.
Có thể dùng nl
để định dạng lại đoạn mã lập trình không?
Không trực tiếp. nl
chỉ đánh số dòng, không hỗ trợ tô màu hay cấu trúc. Nhưng kết hợp nl
với các công cụ khác có thể hữu ích khi debug code.
Có thể ghi kết quả nl
ra file không?
Được. Dùng dấu >
: nl vietnix.txt > output.txt
.
nl
xử lý tốt các tệp có mã UTF-8 không?
Có, miễn là hệ thống và terminal hỗ trợ mã hóa UTF-8 đầy đủ.
Tại sao dòng đầu tiên luôn bắt đầu từ 1 kể cả khi dùng -i
?
Vì -i
chỉ ảnh hưởng đến bước nhảy giữa các dòng, còn số bắt đầu do -v
xác định.
Có thể tích hợp nl
vào quá trình kiểm tra log tự động không?
Có. Ví dụ: sau khi lọc log bằng grep
, dùng nl
để dễ đánh dấu và kiểm tra thủ công hoặc tạo báo cáo.
Lời kết
Lệnh nl
mang lại sự tiện lợi trong việc xử lý và định dạng nội dung file văn bản khi làm việc với Linux, đặc biệt là với các thao tác debug, phân tích dữ liệu hoặc xuất báo cáo. Nếu bạn có bất kỳ thắc mắc nào liên quan đến nl
, cú pháp, hoặc cách áp dụng trong các tình huống cụ thể, đừng ngần ngại để lại bình luận. Hoặc nếu bạn cần hỗ trợ kỹ thuật sâu hơn, hãy liên hệ ngay với đội ngũ chuyên gia từ Vietnix. Mình luôn sẵn sàng giúp bạn tối ưu hiệu suất hệ thống và website nhanh chóng, hiệu quả.
Mọi người cũng xem: