変数に入れた文字列の削除/置換
シェルスクリプト内でファイル名を扱うとき、
拡張子だけ変えて同じファイル名を使いたいときがよくある。
そんなときに、わざわざcut -> 別の変数に代入などを
しなくても良くなる便利な技のメモ。
bashやshでの変数展開
【shでもbashでも】
- ${hoge#pattern} 前方一致でのマッチ部分削除
#1つでは最短マッチ、2つ(##)では最長マッチ - ${hoge%pattern} 後方一致でのマッチ部分削除
%1つで最短マッチ、2つで最長マッチ
【bashのみ】
- ${hoge/before/after} 文字列置換
変数hogeの中にあるbeforeに該当する箇所をafterに置換する。
最初のスラッシュの個数で最初に一致したもののみ置換or一致したもの
すべてを置換かを設定できる。
参考ページ:
shとbashでの変数内の文字列置換など - ろば電子が詰まっている