ここには2つの問題があります。
1.日付を文字列として取得します
これはとても簡単です。オプションを指定してdate
コマンドを使用するだけです。+
バックティックを使用して、変数の値をキャプチャできます。
$ DATE=`date +%d-%m-%y`
日付のマニュアルページ%
で詳しく説明されているように、さまざまなオプションを使用して日付の形式を変更できます。
2.ファイルを名前と拡張子に分割します。
これは少し注意が必要です。それらがファイル名の1つだけになると思われる場合は、区切り文字として.
使用できます。cut
.
$ NAME=`echo $FILE | cut -d. -f1
$ EXT=`echo $FILE | cut -d. -f2`
ただし、これは.
ファイル名の複数では機能しません。使用してbash
いる場合(おそらくあなたはそうです) 、変数展開を行うときにパターンを一致させることができるいくつかのbashマジックを使用できます:
$ NAME=${FILE%.*}
$ EXT=${FILE#*.}
それらをまとめると、次のようになります。
$ FILE=somefile.txt
$ NAME=${FILE%.*}
$ EXT=${FILE#*.}
$ DATE=`date +%d-%m-%y`
$ NEWFILE=${NAME}_${DATE}.${EXT}
$ echo $NEWFILE
somefile_25-11-09.txt
また、読みやすさについてあまり心配していない場合は、すべての作業を1行で(異なる日付形式で)実行します。
$ FILE=somefile.txt
$ FILE=${FILE%.*}_`date +%d%b%y`.${FILE#*.}
$ echo $FILE
somefile_25Nov09.txt