2014-11-05

シェルスクリプトで変数展開時に値の置換/削除処理を行う

記述動作対応するsedコマンド例
${変数名#*c}前方一致でのマッチ部分削除(最短マッチ)sed "s/^.*?c//"
${変数名##*c}前方一致でのマッチ部分削除(最長マッチ)sed "s/^.*c//"
${変数名%*c}後方一致でのマッチ部分削除(最短マッチ)sed "s/.*?c$//"
${変数名%%*c}後方一致でのマッチ部分削除(最長マッチ)sed "s/.*c$//"
${変数名/*c/def}文字列置換(最長マッチで最初にマッチしたもののみ)sed "s/.*c/def/"
${変数名//*c/def}文字列置換(最長マッチでマッチしたものすべて)sed "s/.*c/def/g"

置換時の最短マッチの書き方は不明・・・

*cだとabcabcに対してabcではなくabcabc全体にマッチしてしまう(´・ω・`)

0 件のコメント:

コメントを投稿