Ответ 1
Здесь есть две проблемы.
1. Получить дату в виде строки
Это довольно легко. Просто используйте команду date
с опцией +
. Мы можем использовать backticks для захвата значения в переменной.
$ DATE=`date +%d-%m-%y`
Вы можете изменить формат даты, используя различные параметры %
, как описано на странице 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
И если нас меньше беспокоит читаемость, мы делаем всю работу в одной строке (с другим форматом даты):
$ FILE=somefile.txt
$ FILE=${FILE%.*}_`date +%d%b%y`.${FILE#*.}
$ echo $FILE
somefile_25Nov09.txt