1つの正規表現ksh行で、次のことを行う必要があります。
- 特定の文字列の出現に続いて、特定の値(この場合はコンマ)が最後に出現するまでの任意の数の文字を探します。
- 出力に一致するものをコピーしてから
- コピーされたテキストの後、特定の値(この場合はコンマ)が最後に出現する前に新しい値を挿入します
したがって、入力文字列が次のようになっている場合:
SEARCH_STRING anything_else(foo,bar),
私が出力したいのはこれです:
SEARCH_STRING anything_else(foo,bar) INSERTED_VALUE,
これまでのところ、私のsed式は次のようになっています(これは、最後までではなく、コンマの最初の出現までのすべてに一致してコピーするだけです):
sed -e 's/SEARCH_STRING [^,]\+/& INSERTED_VALUE/'
...これは次の結果になります:
SEARCH_STRING anything_else(foo INSERTED_VALUE,bar)
...これは正しくありません。ネガティブな先読みのようなものを使用する必要があることはわかっていますが、構文を正しく理解することはできません。何かアドバイスをいただければ幸いです。また、カンマが見つからない場合でも、行末で同じ置換を行う必要があります(ただし、別の質問と表現が必要になる場合があります)。アドバイスをよろしくお願いします。