${○○%××}続き
仕事柄、テキトーな自動処理を組むことがあるんだけど、
最近知ったこの一見わけわかめな記号なかなか使えるかも。
この処理は大きく二つの処理に分けられる。
${○○%××} ${○○%%××} ${○○#××} ${○○##××}
%は後方一致、#は前方一致である。
一つの場合は最短マッチ、二つの場合は最長マッチである。
例えば、「http://weather.yahoo.co.jp/weather/jp/kinki.html」というURLからホスト名だけを取りだしたい時、
URL=http://weather.yahoo.co.jp/weather/jp/kinki.html HOST=${URL#http://} HOST=${HOST%%/*} echo $HOST #weather.yahoo.co.jp を出力
こんな感じ。
ちょい前まで、perl使って
HOST=`echo $URL|perl -e 's/http:\/\/([^\/]+)\/.+$/$1/;print'`
とかってやってた
perl使えば1行ですむっちゃすむんだけど、コマンド置換とか、パイプ(|)通したりしたりしてちょっと重い感じ。
でも、上の使えばshellだけでできちゃう。任意のURLからドメイン名だけ取り出すってのも簡単。
ただ、何やってんのかイメージつかないところが問題か。