何でも屋エンジニアのブログ

ソフトウェア関連技術、コミュニティ、日々の雑貨

シェル変数の末尾の文字を削除する

シェル変数の末尾の文字を削除する

シェルスクリプトを書く際、変数の末尾についた余分な記号を取りたいとき、以下のように行っていた(以下、"bananapencilbook"という文字列から"book"を削除する)。OSはCentOS、シェルはbashです。

$ echo ${testvar}
bananapencilbook

$ echo ${testvar} | sed -e 's/book$//g'
bananapencil

上の方法は末尾の文字列以外にも適用できるので楽なのだが、他に何かないか探していたところ、 同じことが以下のようにできるらしい。

$ echo ${testvar%book}
bananapencil

%以下の文字列に後方一致するものを削除するという機能なのだが、他にも便利な記法があるようで、 以下にまとまっている。

qiita.com

あるものは使いましょう。とりあえずsedで何とかしちゃうのダメですね。