Cách hiển thị số dòng trong 'less' (GNU)


659

Lệnh để làm cho số dòng hiển thị ít hơn trong cột bên trái là gì?


80
lesslà một tiện ích dòng lệnh linux và được các lập trình viên sử dụng rất phổ biến để xem các tệp văn bản. Câu hỏi này hoàn toàn có chủ đề về Stack Overflow trong miền "công cụ được lập trình viên sử dụng" giống như tất cả các câu hỏi liên quan đến việc sử dụng gitđều thuộc chủ đề. Đây cũng là lần truy cập đầu tiên trong Google khi tìm kiếm "số dòng hiển thị ít hơn". Câu hỏi này không nên được đóng lại.
John Dibling

5
@JohnDibling Câu hỏi phù hợp hơn với Unix & Linux Stack Exchange . Chỉ vì lessđược sử dụng bởi các lập trình viên không làm cho nó về chủ đề. Bút chì cũng là "công cụ được các lập trình viên sử dụng" nhưng một câu hỏi về cách mài bút chì sẽ không phù hợp ở đây.
lúc 3:01

17
@augurar Tôi nghĩ bạn KHÔNG biết rằng các công cụ ở đây có nghĩa là các công cụ phần mềm . Bạn đang cố tình diễn giải ý nghĩa của các công cụ ra khỏi bối cảnh. Nhân tiện, tôi cũng nghĩ rằng câu hỏi này phù hợp với Unix & Linux Stack Exchange, nhưng nó không ngăn câu hỏi này xuất hiện trên SO :)
Gab 是

Câu trả lời:


977

Từ hướng dẫn :

-N hoặc --LINE-NUMBERS Làm cho số dòng được hiển thị ở đầu mỗi dòng trong màn hình.

Bạn cũng có thể chuyển số dòng mà không bỏ ít hơn bằng cách nhập -N.

Có thể chuyển đổi bất kỳ tùy chọn dòng lệnh nào theo cách này.


6
Khi tôi giảm một tệp khổng lồ thì "G" xuống dưới cùng, nó báo "Tính toán số dòng ... (ngắt để hủy bỏ)" ngay cả khi nó không hiển thị số dòng. Tôi muốn biết làm thế nào để tìm ra dòng tôi đang đi mà không thoát ra và khởi chạy lại với -N. Tôi đang chịu hình phạt. Phần thưởng ở đâu?
Bruno Bronosky

93
wow, tôi đã xem xét sự giúp đỡ trong ít hơn hàng chục lần với hy vọng tìm được câu trả lời cho điều này. Tôi đã luôn bỏ qua "- <cờ> Chuyển đổi tùy chọn dòng lệnh [xem TÙY CHỌN bên dưới]." ... có nghĩa là bạn có thể nhập "-N" từ bên trong ít hơn. Tôi đã bị làm phiền bởi điều này trong khoảng một thập kỷ. Thời gian tốt!
Bruno Bronosky

2
Có thể hiển thị số dòng trong một màu khác nhau?
greg

3
Hi @greg Bạn có thể sử dụng sedđể tô màu các số dòng và tùy chọn -Rđể cho phép lesshiển thị màu: cat -n file.txt | sed 's/^[ 0-9]*[0-9]/\o033[34m&\o033[0m/' | less -R Bạn cũng có thể tùy chỉnh LESSOPEN... Chúc mừng;)
olibre

1
Nhấn ENTER / RETURN nếu bạn đang cố gắng chuyển đổi. Sau khi nhập -n hoặc -N trong khi sử dụng ít hơn, bạn cũng có thể cần phải nhấn vào đó để thay đổi có hiệu lực. Nó thậm chí còn nói như vậy ở phía dưới, nhưng bộ não của tôi đã không kết nối các dấu chấm vì tôi cho rằng nó sẽ là tức thời và tôi tiếp tục gõ -N và tự hỏi tại sao các con số không bao giờ xuất hiện.
abelito

146

Bạn cũng có thể nhấn =while lessđang mở để chỉ hiển thị (ở dưới cùng màn hình) thông tin về màn hình hiện tại, bao gồm cả số dòng, với định dạng:

myfile.txt lines 20530-20585/1816468 byte 1098945/116097872 1%  (press RETURN)

Vì vậy, ở đây, ví dụ, màn hình hiện đang hiển thị các dòng 20530-20585và các tệp có tổng số 1816468dòng.


44

Bạn có thể lọc tệp qua cat -ntrước khi chuyển đến less:

cat -n file.txt | less

Hoặc, nếu phiên bản lesshỗ trợ của bạn, -Ntùy chọn:

less -N file.txt

4
Phiên bản nào ít hơn mà bạn biết rằng (es) không hỗ trợ nó?
Aaron Hall

Tôi thường sử dụng nl thay vì cat -n
ychaouche

32

Bạn có thể đặt biến môi trường để luôn áp dụng các tùy chọn này cho tất cả các tệp less'd:

export LESS='-RS#3NM~g'

2
Dòng alias less="LESS='-RS#3NM~g' less"trong .bashrcđã làm ngày của tôi! Cảm ơn!
Ban giám khảo

4
Một lời giải thích về câu thần chú này sẽ được chào đón rất nhiều :)
minexew

3
Các tùy chọn là: R = xử lý tốt hơn các mã màu thô trong tệp. S = Cuộn các dòng dài ra khỏi màn hình thay vì bọc từ. # 3 = cuộn phải / trái bởi 3 vị trí cùng một lúc. N = hiển thị số dòng. M = nhắc nhở dài hơn. ~ = Thay vì hiển thị không gian trống sau khi tệp kết thúc bằng ~, không hiển thị gì cho không gian trống. g = khi thực hiện tìm kiếm với 'g', chỉ tô sáng trận đấu hiện tại thay vì tất cả các trận đấu.
Bryan

17

Cờ dòng lệnh -Nhoặc --LINE-NUMBERSlàm cho một số dòng được hiển thị ở đầu mỗi dòng trong màn hình.

Bạn cũng có thể chuyển số dòng mà không cần thoát lessbằng cách nhập -N<return>. Có thể chuyển đổi bất kỳ lesstùy chọn dòng lệnh nào theo cách này.


1
Vượt qua -N hoặc --LINE-NUMBERS chỉ hiển thị ngày cho tôi trong CentOS 5.3. Tuy nhiên, sử dụng -N sau khi bắt đầu ít hoạt động tốt.
Mike Miller

15

Nếu bạn nhấn =và mong đợi để xem số dòng, nhưng chỉ thấy số byte, thì số dòng bị tắt. Nhấn -nđể bật chúng và đảm bảo $LESSkhông bao gồm 'n'.

Tắt số dòng theo mặc định (ví dụ: cài đặt LESS=n) tăng tốc tìm kiếm trong các tệp rất lớn. Sẽ rất hữu ích nếu bạn thường xuyên tìm kiếm thông qua các tệp lớn, nhưng thường không quan tâm bạn đang ở dòng nào.

Tôi thường chạy với LESS=RSXin(mã thoát được bật, các dòng dài bị cắt, không xóa màn hình khi thoát, bỏ qua trường hợp trên tất cả các tìm kiếm chữ thường và không có số dòng theo mặc định) và chỉ sử dụng -nhoặc -Stừ bên trong lesskhi cần.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.