【Shell】変数内の文字列の末尾から任意の文字を削除する方法

shell-variable-extension
  • URLをコピーしました!

シェル変数に格納された文字列を変更しようと思ったら、最初に思いつくのはSubString正規表現などですが、そんな事をしなくても簡単に末尾から任意の文字を削除できる事を最近知ったのでメモっておきます。

目次

ファイル名に日付を追加する

以下の例では、ファイル名の末尾、つまりファイル名と拡張子の間に現在の日付を追加するサンプルです。

こちらのサイトを参考にさせていただきました。

解説

上記の例では、先頭の「${BASE_NAME%.*}」で後ろから検索(後方一致)して最初の「.(ドット)」までを除去して出力。
次に、「_`date "+%Y%m%d "」で「_(アンダーバー)」と日付を追加。
最後に、「${BASE_NAME#${BASE_NAME%.*}」で拡張子のみを末尾に付加しています。
まとめると、こんな感じ。

拡張子ワイルドカードで「*(アスタリスク)」にしたのは、どんな拡張子が来ても対応できるようにです。その他にも、シェル変数展開について詳しく書かれた記事がありましたので、こちらをご参考ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメント一覧 (1件)

  • […] 日付を簡単に比較するために、まずはスラッシュ付の日付を数値に置き換えなくてはなりません。 そこで、以前ご紹介した記事の応用で、変数内の/(スラッシュ)を置換してあげます。 【Shell】変数内の文字列の末尾から任意の文字を削除する方法https://minory.org/shell-variable-extension.htmlシェルで変数に格納された文字列を変更しようと思ったら、最初に思いつくのはSubStringや正規表現などですが、そんな事をしなくても簡単に末尾から任意の文字を削除できる事を最近知ったのでメモっておきます。ファイル名に日付を追加する以下の例では、ファイル名の…Minory 置換する方法は以下の通りです。 […]

コメントする

CAPTCHA


目次