如何将less的当前内容保存到文件中?


91

如果已将命令的结果传递到less,然后决定将内容保存到文件中,这可能吗?

我尝试a在缓冲区的末尾设置一个标记,然后返回到顶部并|avi用于将全部内容发送到vi,但这是行不通的。


1
如果通过执行指示vi从stdin加载,则您的原始技术将起作用|avi -
Joe Shaw

Answers:


102

在我的系统,man less说:

       s文件名
              将输入保存到文件。仅当输入为
              管道,而不是普通文件。

为我工作!


4
某种程度上,这对我不起作用-键入“ s”会将窗口移动一行。我在Mac上。
benroth 2014年

2
@benroth:您可能有一个lesskey更改常规命令的文件。请参阅man lesskey
RedGrittyBrick 2014年

8
s也不适合我,但-o file可以。
user1338062

1
当我输入“ h”以获得交互式帮助时,为什么在地球上却没有提到这一点?+1,如果您已阅读交互式帮助,因此不愿咨询man less...
Peter V.Mørch16年

1
@comfreak:是的,在Ubuntu 18.04中,它的数量少于487,而在Debian 9 / stretch / stable中,它的数量却少于481
Peter V.Mørch,

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,less支持命令。

只需键入密钥s,然后less将询问您要保存内容的文件的名称,只需键入文件名,然后键入Enter

干杯


0

使用>运算符。例如:less foo.bar > output.txt


感谢@Dror,但我已经处于较少的应用程序中,不再在bash提示符下
Jonathan Day

对Q / A的宝贵贡献。人们不需要一个完全独立的问题,而是需要一种通过Less Viewer编写多个文件脚本的方法的人会受益匪浅。经过大量搜索,为我节省了工作时间。谢谢!
LD詹姆斯

0

否,如果您开始的较少,但是如果您知道在yu之前希望将其发送至更少的文件,则可以使用tee命令

command | tee out_file | less

谢谢马克,但是我正在寻找如果我已经不在的话该怎么做
乔纳森·戴

0

我相信我的回答来得太迟了。但是,仅作为参考,以响应benroth的上述关注:对于OSX用户,始终可以通过在冒号提示符下使用选项“ -l”(将DASH ELL读取)将分页器的内容转储到日志文件中。

寻呼机将要求一个日志文件。键入并按[CR]

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.