переименовать файл на основе части исходного имени - PullRequest
0 голосов
/ 28 июня 2018

Когда-нибудь мы получим новый резервный дамп базы данных, например:

thisfile.0.db2v22.DODE0000.CATN00000.20180627132924.001
thisfile.0.db2v22.DODE0000.CATN00000.20180628132924.001
thisfile.0.db2v22.DODE0000.CATN00000.20180629132924.001

и из этого дампа указывается дата, которая находится на 6-й позиции имени файла, например: 20180627132924.

Мне нужно написать скрипт, который удалит дату и время, например: 20180627132924 из этого файла в папке и вставит в скрипт восстановления.

Как мне получить эту дату, чтобы я мог добавить ее в качестве переменной в сценарии восстановления?

может быть что-то вроде:

OUTPUT="$(ls -l *.001 | awk -F '[_.]' '{print $6}')"
echo " restore $(OUTPUT) to this" >>restore 
chmod 700 restore
./restore

1 Ответ

0 голосов
/ 28 июня 2018

В случае имени файла, который вы предлагаете, я бы предложил использовать встроенные функции чистого Bash:

$ file="thisfile.0.db2v22.DODE0000.CATN00000.20180627132924.001"
$ fname=${file%.*}
$ fname=${fname##*.}
$ echo $fname
20180627132924
$ echo "This is the file name ${fname} and it has been backup." > outputfile
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...