使用‘ed’编辑器,如何打印前 20 个匹配的行?

使用‘ed’编辑器,如何打印前 20 个匹配的行?

给定一个非常大的文件,我可以用 ed 进行编辑,然后发出以下命令。

g/real/p

这将打印出所有包含“real”的行。

我想要做的是打印前 20 个。

我知道 sed、grep、head 等。但我想提高我的 ed 技能。

答案1

您可以在命令前以 的形式指定范围from,to

1,4p

将打印第 1-4 行。

答案2

以下是一种方法:

ed -s infile <<IN
v/PATTERN/d               # delete all lines NOT matching PATTERN
,w !head -n20             # pass the addressed lines as input to shell command
u                         # undo deletion: not needed if you don't save changes
q                         # quit editor
IN

相关内容