そのため、sedを使用して正規表現パターンの2つのインスタンスを次のように2つの異なる文字列に変更してみました。
sed -E "s/\\t([A-Za-z]|[-])+$/\\t`get_addr.py -1`/" /path/to/file.ext
sed -E "s/\\t([A-Za-z]|[-])+$/\\t`get_addr.py -2`/" /path/to/file.ext
私は多くのことを試して、多くのマンページ検索を行いましたが、それを実装する方法をよく知りません。
sedに、各一致を別の文字列に置き換えるように指示する方法はありますか?
sed -E "s/\\t([A-Za-z]|[-])+$/[1st replacement],[2nd replacement]/" /path/to/file.ext
そして/またはsedを2回呼び出すためにn番目の一致を探していることを正規表現に指定する方法はありますか?
答え1
少なくともGNU sedでは、次のようなことができると思います。
sed -e '0,/pattern/ s//replacement1/' -e '0,/pattern/ s//replacement2/' file
たとえば、与えられたファイル
abc
def
abc
ghi
abc
jkl
それから
$ sed -e '0,/abc/ s//XYZ/' -e '0,/abc/ s//UVW/' file
XYZ
def
UVW
ghi
abc
jkl