Як я можу зберегти поточний вміст менше у файл?


91

Якщо я записав результати команди lessі вирішив, що хочу зберегти вміст у файл, чи можливо це?

Я спробував встановити позначку aв кінці буфера, а потім повернутися до верху та використовувати |aviдля надсилання всього вмісту vi, але це не працює.


1
Ваша оригінальна техніка спрацювала б, якщо ви доручили vi завантажуватися зі stdin, виконуючи це |avi -.
Джо Шов

Відповіді:


102

Про мою систему, man lessкаже

       s ім'я файлу
              Збережіть вхід у файл. Це працює лише в тому випадку, якщо вхід є a
              труба, а не звичайний файл.

Для мене працює!


4
Так чи інакше це не працює для мене - введенням 's' переміщується вікно на один рядок. Я на Mac.
benroth

2
@benroth: Напевно, у вас є lesskeyфайл, який змінює звичайні команди. Дивітьсяman lesskey
RedGrittyBrick

8
sне працює і для мене, але -o fileробить.
користувач1338062

1
І чому на землі це не згадується, коли я набираю 'h' для отримання інтерактивної допомоги? +1, якщо ви читали інтерактивну допомогу і тому не думали радитися man less...
Петро В. Мерч

1
@comfreak: Так, це менше 487 в Ubuntu 18.04, але не менше 481 в Debian 9 / стретч / стабільний
Пітер В. Морч

24

Прийнята відповідь не працює на Mac - як каже @benroth, натискання sпросто рухається вниз по лінії - але ви можете використовувати інший метод.

В 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

Отже, якщо ви переходите до верхньої частини буфера ( <), а потім:

|$cat > /tmp/foo.txt

вміст буфера буде виписано на /tmp/foo.txt.


Цей спосіб може бути особливо корисним, коли ви хочете передати поточний буфер, який переглядають через іншу команду.
Дорон Бехар

3

Коли ваше lessвідкрито, ви можете зберегти повний вихід у файл. Мовляв vim, менше підтримує команди.

Просто введіть ключ s, після lessчого запитаєте назву файла, куди ви хочете зберегти вміст, просто введіть ім'я файлу та введіть Enter.

Ура


0

Скористайтеся >оператором. Наприклад: less foo.bar > output.txt.


Дякую @Dror, але я вже в меншій програмі, більше не підкажуйте
Джонатан День

Цінний внесок у Q / A. Замість того, щоб запускати абсолютно окреме питання, люди, яким потрібен метод скриптування декількох файлів через Менше переглядача, можуть принести користь. Врятували мені години роботи (після багатьох пошуків). Дякую!
ЛД Джеймс

0

Ні, якщо ви почали менше, але якщо ви знаєте, перш ніж ви хочете відправити його на менший розмір і файл, то ви можете використовувати команду tee

command | tee out_file | less

Дякую Марку, але я спеціально дивлюсь, як це зробити, якщо я вже менше
День Джонатана

0

Моя відповідь приходить занадто пізно, я вважаю. Але лише для довідки, у відповідь на занепокоєння Бенрота вище: Для користувачів OSX завжди є можливість скинути вміст пейджера у файл журналу, використовуючи опцію "-l" (читати DASH ELL ) у вікні двокрапки.

Пейджер запитає файл журналу. Введіть його та натисніть [CR]

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.