5分で覚えて超捗る、bashのパターン照合演算子

ファイルパスの文字列をごにょごにょしたいとき、パターン照合演算子というのを使うといろいろ捗ります。

パターン照合演算子の使い方

たとえば、bashで変数FILEが下記のように宣言されていたとします。
FILE=/etc/httpd/conf/httpd.conf
このとき、下記のような結果になります。

結果
${FILE#/*/} httpd/conf/httpd.conf
${FILE##/*/} httpd.conf
${FILE##*.} conf
${FILE%conf*} /etc/httpd/conf/httpd.
${FILE%%conf*} /etc/httpd/
${FILE%.*} /etc/httpd/conf/httpd

ルール

演算子結果
${VAR#pattern}変数VARの最初からpattern検索し、一致した最短部分を除去して、残りを返す。
${VAR##pattern}変数VARの最初からpattern検索し、一致した最長部分を除去して、残りを返す。
${VAR%pattern}変数VARの末尾からpattern検索し、一致した最短部分を除去して、残りを返す。
${VAR%%pattern}変数VARの末尾からpattern検索し、一致した最長部分を除去して、残りを返す。


若干記法がキモイですが、意地でもsedを使いたくないときには大変便利です。

Enjoy!
カテゴリ: