У меня есть имя файла mahelipaul_YYYYMMDDHHMMSS, мне нужно удалить часть HHMMSS из файла и назначить ее новой переменной.
Мне нужен файл mahelipaul_YYYYMMDD. Как я могу это сделать?
С помощью Bash можно использовать «нарезку», чтобы вырезать несколько символов из строки. Похоже, вы хотите удалить последние 6 символов, и это можно сделать следующим образом: (это просто еще один способ сделать то же самое, что и в ответе Гленна)
$ filename=mahelipaul_20201231235959
$ echo "${filename::-6}" # remove the last 6 characters
mahelipaul_20201231
Если вы хотите обратного (сохранить только последние 6 символов, то это выглядит следующим образом:
$ filename=mahelipaul_20201231235959
$ echo "${filename:(-6)}" # keep only the last 6 characters
235959
Обратите внимание, что я «просто» назначаю переменную и печатаю новую. Вам нужно использовать эти модифицированные переменные для создания новых переменных, файлов или чего-то еще, что вы действительно хотите сделать.
Я нахожу эту Ссылку на Bash действительно полезной.
Самый простой
filename=mahelipaul_20201231235959
echo mv "$filename" "${filename%??????}" # remove the last 6 characters
Удалите эхо, если оно выглядит правильно.
Есть более сложные вещи, которые можно сделать, чтобы проверить суффикс, состоящий из 14 цифр, и убедиться, что эти цифры представляют собой действительную метку времени.