lancer_serega
@lancer_serega
PHP Developer

Как выдернуть последние 10 символов в строке?

Есть строка такого вида
drwxr-xr-x 1 8000027 8000027 0 Nov 28 16:37 2017-11-28

Нужно из нее выдернуть последние 10 символов - 2017-11-28
  • Вопрос задан
  • 310 просмотров
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
STRING="drwxr-xr-x 1 8000027 8000027 0 Nov 28 16:37 2017-11-28"
LAST10="${STRING: -10:10}"
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
echo drwxr-xr-x 1 8000027 8000027 0 Nov 28 16:37 2017-11-28 | awk '{print $9}'

Но если вы опишите саму задачу, возможно получится оптимизировать и сам скрипт, Пока он выглядет странно, хотя и будет работать.
Ответ написан
Комментировать
lancer_serega
@lancer_serega Автор вопроса
PHP Developer
Всем спасибо за помощь, Дописал я тот скрипт. Пользовался lftp (а она эмулирует какието функции баша, но в терминологии могу ошибиться)
Пришлось эмулировать ftp сервер в папку и уже нормальным башем выдернуть все что мне нужно

А по поводу кривости написания. Мне можно сделать скачуху, все таки это мой первый баш скрипт)))))

echo -en "\n${GREEN}Начало импорта...${NORMAL}\n\n"
CURRENT_DIR=`pwd`

function importDumpFileToVagrant {
    cd ${CURRENT_DIR}
    pwd
    echo ${DUMP_FILE_NAME}
    if [[ -f ${DUMP_FILE_NAME} ]]
        then
            pv ${CURRENT_DIR}/${DUMP_FILE_NAME} | mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -D${MYSQL_DB_NAME} -u${MYSQL_USER} -p${MYSQL_PASS}
            rm ${DUMP_FILE_NAME}
            echo -en "${GREEN}Импортирование прошло успешно! =(${NORMAL}\n";
        else
            echo -en "${RED}Файл дампа БД не найден! =(${NORMAL}\n";
    fi
}

echo -en "${YELLOW}Создаем дамп на сервере...${NORMAL}\n"
ssh ${SSH_LOGIN}@${SSH_HOST} 'bash /var/www/hlamada.ru/server/backup.sh -m db'
echo -en "${GREEN}Дамп успешно создан и отправлен на FTP сервер...${NORMAL}\n"

echo -en "${YELLOW}Мотируем FTP как диск в папку '${PATH_TO_MOUNT}' ${NORMAL}\n"
fusermount -u ${PATH_TO_MOUNT}
curlftpfs ${FTP_LOGIN}:${FTP_PASS}@${FTP_HOST} ${PATH_TO_MOUNT}
echo -en "${GREEN}Монтирование прошло успешно! '${CYAN}${PATH_TO_MOUNT}${NORMAL}' \n"

cd ${PATH_TO_MOUNT}/hlamada.ru/
DIR_NAME=`ls | tail -1`
cd ${DIR_NAME}
FILE_NAME=`ls | tail -1`

echo -en "${YELLOW}Распаковка дампа...${NORMAL}\n"
tar -xvzf ${PATH_TO_MOUNT}/hlamada.ru/${DIR_NAME}/${FILE_NAME} -C ${CURRENT_DIR}
echo -en "\n${GREEN}Распаковка дампа прошла успешно!\nНаходится в '${CYAN}${CURRENT_DIR}/${DUMP_FILE_NAME}${YELLOW}'${NORMAL}\n"

importDumpFileToVagrant

echo -en "\n${GREEN}Конец импорта!\n\n"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы