Làm cách nào tôi có thể lưu nội dung hiện tại ít hơn vào một tệp?


91

Nếu tôi đã dẫn kết quả của một lệnh đến lessvà sau đó quyết định rằng tôi muốn lưu nội dung vào một tệp, điều này có khả thi không?

Tôi đã thử đặt một dấu aở cuối bộ đệm, sau đó quay lại đầu trang và sử dụng |aviđể gửi toàn bộ nội dung đến vi, nhưng điều đó không hiệu quả.


1
Kỹ thuật ban đầu của bạn sẽ hoạt động nếu bạn hướng dẫn vi tải từ stdin, bằng cách thực hiện |avi -.
Joe Shaw

Câu trả lời:


102

Trên hệ thống của tôi, man lessnói

       tên tệp
              Lưu đầu vào vào một tập tin. Điều này chỉ hoạt động nếu đầu vào là một
              ống, không phải là một tập tin bình thường.

Làm việc cho tôi!


4
Bằng cách nào đó, điều này không hiệu quả với tôi - gõ 's' di chuyển cửa sổ theo một dòng. Tôi đang dùng Mac.
benroth

2
@benroth: Bạn có thể có một lesskeytệp thay đổi các lệnh thông thường. Xemman lesskey
RedGrittyBrick

8
skhông làm việc cho tôi, nhưng -o filekhông.
dùng1338062

1
Và tại sao điều này không được đề cập khi tôi gõ 'h' để nhận trợ giúp tương tác? +1 nếu bạn đã đọc trợ giúp tương tác và do đó không nghĩ sẽ tham khảo man less...
Peter V. Mørch

1
@comfreak: Có trong 487 trong Ubuntu 18.04 nhưng không phải là ít hơn 480 trong Debian 9 / căng / ổn định
Peter V. Mørch

24

Câu trả lời được chấp nhận không hoạt động trên Mac - như @benroth nói, nhấn schỉ cần di chuyển xuống một dòng - nhưng bạn có thể sử dụng một phương pháp khác.

Trong less --help:

|Xcommand            Pipe file between current pos & mark X to shell command.

A mark is any upper-case or lower-case letter.
Certain marks are predefined:
     ^  means  beginning of the file
     $  means  end of the file

Vì vậy, nếu bạn đi đến đầu bộ đệm ( <) và sau đó:

|$cat > /tmp/foo.txt

nội dung của bộ đệm sẽ được viết ra /tmp/foo.txt.


Phương pháp này có thể đặc biệt hữu ích khi bạn muốn đặt bộ đệm hiện tại đang được xem thông qua một lệnh khác.
Doron Behar

3

Khi bạn lessđược mở, bạn có thể lưu đầu ra hoàn chỉnh vào một tệp. Giống như vim, ít hỗ trợ các lệnh.

Chỉ cần nhập khóa s, sau đó lesssẽ hỏi bạn tên của tệp mà bạn muốn lưu nội dung, chỉ cần nhập tên tệp và sau đó nhập Enter.

Chúc mừng


0

Sử dụng >toán tử. Ví dụ : less foo.bar > output.txt.


Cảm ơn @Dror, nhưng tôi đã ở trong ứng dụng ít hơn, không phải ở dấu nhắc bash nữa
Ngày Jonathan

Một đóng góp có giá trị cho Q / A. Thay vì bắt đầu một câu hỏi hoàn toàn riêng biệt, mọi người cần một phương pháp để kịch bản nhiều tệp thông qua Trình xem ít hơn có thể mang lại nhiều lợi ích. Tiết kiệm cho tôi hàng giờ làm việc (sau rất nhiều tìm kiếm). Cảm ơn!
LD James

0

Không nếu bạn đã bắt đầu ít hơn, nhưng nếu bạn biết trước khi bạn muốn gửi nó đến ít hơn và một tệp thì bạn có thể sử dụng lệnh tee

command | tee out_file | less

Cảm ơn Mark, nhưng tôi đặc biệt tìm cách làm điều đó nếu tôi đã ở ít hơn
Ngày Jonathan

0

Câu trả lời của tôi đến một chút quá muộn tôi tin. Nhưng chỉ để tham khảo, đáp lại mối quan tâm của benroth ở trên: Đối với người dùng OSX luôn có tùy chọn chuyển nội dung của máy nhắn tin vào tệp nhật ký bằng cách sử dụng tùy chọn "-l" (đọc DASH ELL ) tại dấu nhắc dấu hai chấm.

Máy nhắn tin sẽ yêu cầu một tệp nhật ký. Nhập khóa và nhấn [CR]

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.