извлечь временную часть из имени файла [дубликат]

У меня есть имя файла mahelipaul_YYYYMMDDHHMMSS, мне нужно удалить часть HHMMSS из файла и назначить ее новой переменной.

Мне нужен файл mahelipaul_YYYYMMDD. Как я могу это сделать?

0
задан 19 July 2021 в 11:35

2 ответа

С помощью 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 действительно полезной.

1
ответ дан 28 July 2021 в 11:17

Самый простой

filename=mahelipaul_20201231235959
echo mv "$filename" "${filename%??????}"     # remove the last 6 characters

Удалите эхо, если оно выглядит правильно.

Есть более сложные вещи, которые можно сделать, чтобы проверить суффикс, состоящий из 14 цифр, и убедиться, что эти цифры представляют собой действительную метку времени.

1
ответ дан 28 July 2021 в 11:17

Другие вопросы по тегам:

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