gnu sedでsnake_case、camelCase、PascalCaseの相互変換

# snake_case -> PascalCase
$ echo "hoge_hoge hoge" | sed -r 's/(\b|_)(.)/\u\2/g'
HogeHoge Hoge

# snake_case -> camelCase
$ echo "hoge_hoge hoge" | sed -r 's/(_)(.)/\u\2/g'
hogeHoge hoge

# PascalCase -> snake_case
$ echo "HogeHoge Hoge" | sed -r -e 's/([a-zA-Z])([A-Z])/\1_\l\2/g' -e 's/\b([A-Z])/\l\1/g'
hoge_hoge hoge

# camelCase -> snake_case
$ echo "hogeHoge hoge" | sed -r 's/([a-zA-Z])([A-Z])/\1_\l\2/g'
hoge_hoge hoge

macの場合はgnu-sedをインストールしてgsedで。

参考: