これは些細な作業のようですが、とても分からなくて聞いてみることにしました。行全体を置き換える必要がありますが、最後の文字はオプションです。たとえば、私は以下が欲しい。
abcd
to beefgh
しかし
abcd,
to beefgh,
このような正規表現をどのように作成できますか?オプションの文字は逆に参照できないようです。つまり、次のようになります。s/.*\(,\)?$/efgh\1
動作しません(試しました:)明確にするために、行は任意の長さの任意の文字です。私の場合、唯一の条件は、置換後の行末にカンマを保持するか、行がカンマで終わらない場合は削除することです。
ベストアンサー1
もう一つ:
$ echo -e "abcd\nabcd," | sed 's/.*\($\|,\)/efgh\1/'
efgh
efgh,
これは、キャプチャグループの$
行末またはカンマと一致します。,