我最近开始学习ed
,但是我已经到了需要搜索文本的地步。我的第一次尝试是ed
's/
命令,它将显示出现的次数,但不包括行号。这在香草中可以实现吗ed
?
答案1
答案2
您可以用来=
输出编辑缓冲区中一行的行号。要使用某个表达式进行搜索RE
并输出第一个命中的行号,请使用
/RE/ =
该n
命令输出当前行并以其行号为前缀。也可以将其应用于其他一些行或行范围:
/RE/ n
要获取所有匹配行的行号,请将=
orn
与g
命令结合使用。但请注意,由于命令的默认地址=
是编辑缓冲区的最后一行,而不是当前行,因此使用=
会输出错误的结果,g
除非我们明确给出.
地址。所以使用
g/RE/ .=
仅获取所有匹配的行的行号RE
。
使用
g/RE/ n
输出所有匹配的行RE
及其行号(类似于,grep -n 'RE'
但格式不同)。