Bashで文字列にスネークケース変換を行うには?
HelloWorld → hello_world WMClass → wm_class このように、キャメルケース(PascalCase含む)をスネークケースに変換 to_snake_case() { local input="$1" echo "$input" \ | sed -E 's/([A-Z]+)([A-Z][a-z])/\1_\2/g' \ | sed -E 's/([a-z0-9])([A-Z])/\1_\2/g' \ | tr 'A-Z' 'a-z' } # テスト for s in HelloWorld WMClass URLLoader MyXMLParser FooBAR BazQux; do echo "$s -> $(to_snake_case "$s")" done # 出力例 HelloWorld -> hello world POSIXBased -> posix based XMLHTTPRequest -> xml http request URLLoader -> url loader FooBAR -> foo bar BazQux -> baz qux