sed を使って my mother
という文字列を tom's mother
に変換しようとして、single quoteを単純にエスケープすればいいかと思ったがそうではなかった。
$ echo 'my mother' | sed "s/my mother/tom's mother/"
のように外側をdouble quoteにすれば当然変換できるのだが、複雑なケースで外側をsingle quoteにしたかった。
試したこと
's/my mother/tom\'s mother/'
→ うまくいかない's/my mother/tom'\''s mother/'
→ 一度文字列を閉じて、\'
を打ったあと再度文字列を開始する。わかりにくい's/my mother/tom\x27s mother/'
→\x27
single quoteの16進表記を使う これでうまくいった