Regular-Expression

在 GNU Ed 中使用行號搜尋

  • September 5, 2021

我最近開始學習ed,但是我已經到了需要搜尋文本的地步。我的第一次嘗試是ed/命令,它將顯示出現次數,但不包括行號。這在香草中可以實現ed嗎?

您可以使用g+ n(全域 + 數字命令):

$ ed -p 'ed> ' file
ed> ,p
tree
apple
lemon
fruit
not
here
pear
apricot
end
ed> g/a/n
2       apple
7       pear
8       apricot

始終查看文件以查看所有可用命令:POSIX EdGNU Ed

您可以=用來輸出編輯緩衝區中一行的行號。要使用某個表達式進行搜尋RE並輸出第一次命中的行號,請使用

/RE/ =

n命令輸出以其行號為前綴的目前行。也可以將其應用於其他一些行或行範圍:

/RE/ n

要獲取所有匹配行的行號,請結合=ng命令。但是請注意,由於=命令的預設地址是編輯緩衝區的最後一行,而不是目前行,因此使用=會輸出錯誤的結果,g除非我們明確地給它.地址。所以使用

g/RE/ .=

僅獲取匹配的所有行的行號RE

利用

g/RE/ n

輸出與它們的行號匹配的所有行RE(類似於grep -n 'RE'雖然格式不同)。

引用自:https://unix.stackexchange.com/questions/667556