如果我将命令的结果传输到管道less
,然后决定将内容保存到文件中,这可能吗?
我尝试a
在缓冲区末尾设置一个标记,然后返回到顶部并使用|avi
将整个内容发送到vi
,但这不起作用。
答案1
在我的系统上,man less
说
s filename
Save the input to a file. This only works if the input is a
pipe, not an ordinary file.
对我有用!
答案2
接受的答案在 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
。
干杯
答案4
如果你已经启动了 less,则不需要,但如果你知道要将其发送到 less 和文件,那么你可以使用 tee 命令
command | tee out_file | less