Làm thế nào để tôi viết tất cả các dòng từ ít hơn vào một tập tin?


76

Tôi đã chuyển một lệnh đến lessvà bây giờ tôi muốn lưu kết quả của lệnh vào một tệp. Làm thế nào để làm điều đó?

Trong trường hợp này, tôi không muốn sử dụng tee, tôi muốn một giải pháp trực tiếp từ ít hơn, do đó tôi không phải chạy lại lệnh chạy dài nếu tôi quên sử dụng tee.

Câu hỏi này tương tự câu hỏi này, điểm khác biệt duy nhất là tôi muốn lưu tất cả các dòng, không phải là tập hợp con: Viết các dòng vào một tệp từ ít hơn

Câu trả lời:


106

Từ less, nhập srồi nhập tên tệp bạn muốn lưu vào, sau đó Enter.
Từ mantrang, bên dưới COMMANDS:

s filename
      Save the input to a file.  This only works if the input is a pipe, not an ordinary file.

manTrang cũng nói rằng, tùy thuộc vào cài đặt cụ thể của bạn, slệnh có thể không khả dụng. Trong trường hợp đó, bạn có thể đi đến dòng 1 với:

g or < or ESC-<
      Go to line N in the file, default 1 (beginning of file).

và chuyển toàn bộ nội dung sang cat:

| <m> shell-command
      <m> represents any mark letter. Pipes a section of the input file to the
      given shell command. The section of the file to be piped is between the
      first line on the current screen and the position marked by the letter. 
      <m> may also be ^ or $ to indicate beginning or end of file respectively.

Vì vậy:

g|$cat > filename

hoặc là:

<|$cat > filename

tức là loại ghoặc <( g hoặc ít hơn ) | $( ống rồi đô la ) rồi cat > filenameEnter.
Điều này sẽ làm việc cho dù đầu vào là một đường ống hoặc một tập tin thông thường.


0

Một cách để làm điều đó mà không cần teelà như sau.
less /path/to/input > /path/to/output
Ở trên sẽ ghi đè /path/to/outputnếu nó đã tồn tại.

Để làm như vậy, nhưng nối vào /path/to/outputnhư sau.
less /path/to/input >> /path/to/output

Để lưu văn bản lesssau khi bạn đã mở nó, bạn có thể sử dụng tính năng Lưu tệp.
Khi vào less, bấm s. Sau đó, nhập tên tệp.
Nếu bạn đã sử dụng một đường ống, tập tin sẽ tự động được ghi vào Thư mục làm việc.
Nếu bạn không sử dụng một đường ống, bạn sẽ mở một tệp có văn bản (mà bạn có thể lưu).
Tôi tin rằng các tập tin sẽ được mở trong vim.


4
Tôi muốn một giải pháp từ lesskhi tôi đã mở less.
Flimm

Tôi hiểu rồi. Xin lỗi vì sự hiểu lầm. Tôi đã cập nhật câu trả lời của mình.
nehcsivart

-2

Bạn không sử dụng ít hơn, bạn sử dụng tee và sau đó chuyển tee thành ít hơn.

./program | tee program.out | less


5
Trong câu hỏi, tôi đặc biệt yêu cầu một giải pháp hoạt động mà chưa teemột lần lessđược mở.
Flimm
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.