83

Если я передал результаты команды на « less а затем решил, что хочу сохранить содержимое в файл, это возможно?

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

6 ответов6

98

В моей системе man less говорит

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

Работает для меня!

23

Принятый ответ не работает на 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 , less поддерживает команды.

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

ура

0

Мой ответ приходит слишком поздно, я верю. Но только для справки, в ответ на озабоченность Benroth выше: для пользователей OSX всегда есть возможность выгрузить содержимое пейджера в файл журнала, используя опцию "-l" (читаем DASH ELL) в приглашении двоеточия.

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

0

Используйте оператор > . Например: less foo.bar > output.txt .

-1

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

command | tee out_file | less

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .