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
参考:
- 「正規表現でスネークケース:left_right_arrow:キャメルケース/パスカルケースの変換 - Qiita」 https://qiita.com/ryo0301/items/7c7b3571d71b934af3f8
- 「キャメルケース - Wikipedia」 https://ja.wikipedia.org/wiki/%E3%82%AD%E3%83%A3%E3%83%A1%E3%83%AB%E3%82%B1%E3%83%BC%E3%82%B9
- 「sed, a stream editor」 https://www.gnu.org/software/sed/manual/sed.html