给定一个非常大的文件,我可以用 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