にちにちメモ

天文系大学院生のブログ。日々の生活の中で忘れがちなこと/忘れたくないことをメモ。

変数に入れた文字列の削除/置換

シェルスクリプト内でファイル名を扱うとき、
拡張子だけ変えて同じファイル名を使いたいときがよくある。

そんなときに、わざわざcut -> 別の変数に代入などを
しなくても良くなる便利な技のメモ。

 

bashやshでの変数展開

【shでもbashでも】

  • ${hoge#pattern} 前方一致でのマッチ部分削除
    #1つでは最短マッチ、2つ(##)では最長マッチ
  • ${hoge%pattern} 後方一致でのマッチ部分削除
    %1つで最短マッチ、2つで最長マッチ

bashのみ】

  • ${hoge/before/after} 文字列置換
    変数hogeの中にあるbeforeに該当する箇所をafterに置換する。
    最初のスラッシュの個数で最初に一致したもののみ置換or一致したもの
    すべてを置換かを設定できる。

 

参考ページ:

shとbashでの変数内の文字列置換など - ろば電子が詰まっている