Bashの文字列操作 - 部分文字列、置換、トリム、大文字小文字変換
bashパラメータ展開による部分文字列抽出、パターン置換、接頭辞/接尾辞の除去、デフォルト値、大文字小文字変換の文字列操作を学びます。
String Manipulation
詳細な説明
Bashでの文字列操作
Bashはパラメータ展開を通じて強力な文字列操作を提供します。これらの操作は外部プロセスを起動せずに実行されるため、単純な変換ではsedやawkより高速です。
文字列の長さ
str="Hello, World!"
echo ${#str} # 13
部分文字列の抽出
str="Hello, World!"
echo ${str:7} # World!(オフセットから末尾まで)
echo ${str:0:5} # Hello(オフセットと長さ)
パターン置換
path="/home/user/documents/report.pdf"
echo ${path/user/admin} # 最初の一致を置換
echo ${path//\//|} # すべての一致を置換
接頭辞と接尾辞の除去
file="archive.tar.gz"
echo ${file##*.} # gz(拡張子のみ)
echo ${file%.*} # archive.tar
echo ${file%%.*} # archive(ベース名)
デフォルト値
echo ${PORT:-3000} # 未設定または空なら既定値を使用
: ${PORT:=3000} # 未設定または空なら既定値を代入
echo ${DB_HOST:?"DB_HOSTは必須です"} # 未設定ならエラー
大文字小文字変換(Bash 4+)
text="Hello World"
echo ${text^^} # HELLO WORLD(すべて大文字)
echo ${text,,} # hello world(すべて小文字)
ユースケース
文字列操作はbashスクリプトでファイル名の処理(拡張子、ベース名、ディレクトリパスの抽出)、動的な文字列の構築(URL、ファイルパス、ログメッセージ)、デフォルト値による設定の実装、sedやawkなどの外部コマンドに頼らないデータ変換に不可欠です。