GNU Edで行番号を使用して検索

GNU Edで行番号を使用して検索

私は最近学び始めましたが、edテキストを検索する必要があるレベルに達しました。私の最初の試みは、発生回数は表示しますが行番号は表示しないのedコマンドでした。/バニラではこれは可能ですedか?

答え1

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バージョンそしてGNU教育用エディション

答え2

これを使用して、=編集バッファ内の行の行番号を出力できます。式を使用して検索しRE、最初のヒットの行番号を出力するには、次のようにします。

/RE/ =

このnコマンドは、行番号の前に付いた現在の行を出力します。他の行または行の範囲にも適用できます。

/RE/ n

一致するすべての行の行番号を取得するには、=またはコマンドnと一緒に使用します。gただし、コマンドのベースアドレスは=現在の行ではなく編集バッファの最後の行であるため、明示的にアドレスを指定しない限り、使用すると=誤った結果が得られます。だから使用g.

g/RE/ .=

一致するすべての行の行番号のみを取得しますRE

使用

g/RE/ n

一致するすべての行REとその行番号を出力します(似ていますgrep -n 'RE'が、形式は異なります)。

関連情報