我经常需要获取日志文件的子集并将其保存到文件中以供以后使用。我less
经常在日志中查看和搜索,为了导出有趣的部分,我目前执行以下操作:
- 显示
less
行号并记下我需要的行范围 - 回到 cli,使用
sed
I 提取所需的范围并将其保存到文件中
是否可以从内部less
(即没有sed
零件)执行此操作?
答案1
笔记,以下命令可能有效也可能无效,具体取决于您的特定安装。
从man less
。
| <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. If <m> is . or newline, the current screen is piped.
因此,当在 中打开文件时less
,导航到所需位置并键入以下内容:
|. cat >filename
|.
导致less
将当前屏幕传送到给定的命令。命令是cat >filename
。cat
读取STDIN
并重定向到filename
.
如果需要,您还可以在编辑器中打开该部件:
|. vi -
读取-
的原因。然后编辑您想要编辑的内容并将文件保存为.您还可以使用另一个编辑器,它可以从.vi
STDIN
vi
:w filename
STDIN