GNU/Linux >> Linux の 問題 >  >> Linux

Linux bash、ダッシュで区切るキャメルケース文字列

そのために sed を使用することを提案します:

NEW=$(echo MyDirectoryFileLine        \
     | sed 's/\(.\)\([A-Z]\)/\1-\2/g' \
     | tr '[:upper:]' '[:lower:]')

最新情報 小文字に変換するのを忘れて、更新されたコード


s/\([A-Z]\)/-\L\1/g を使用できます 大文字を見つけてダッシュに置き換え、それを小文字にします。ただし、これにより行の先頭にダッシュが表示されるため、それを処理するには別の sed 式が必要です。

これは動作するはずです:

sed --expression 's/\([A-Z]\)/-\L\1/g' \
    --expression 's/^-//'              \
    <<< "MyDirectoryFileLine"

Linux
  1. LinuxでBashプロンプトを短縮する方法は?

  2. SedでBash文字列変数への参照を使用しますか?

  3. Linux の glob() で大文字と小文字を区別しない

  1. LinuxでBashプロンプトをWinterize

  2. LinuxでのBash履歴の解析

  3. Linuxコマンドラインで複数のファイルの文字列を置き換える方法

  1. bashのフォルダ内の各ファイルの先頭に文字列を追加するにはどうすればよいですか?

  2. 「bash -c」は何をしますか?

  3. bash の文字列からすべての特殊文字と大文字と小文字を削除します