Отображать текущую дату и время без пунктуации
Например, я хочу отображать текущую дату и время в следующем формате:
yyyymmddhhmmss
Как мне это сделать? Кажется, что большинство форматов даты имеют -
, /
, :
и т.д.
Ответы
Ответ 1
Здесь вы идете:
date +%Y%m%d%H%M%S
Как man date
говорит около вершины, вы можете использовать команду date
следующим образом:
date [OPTION]... [+FORMAT]
То есть вы можете указать ему параметр формата, начиная с +
.
Вероятно, вы можете угадать смысл используемых символов форматирования:
-
%Y
- год
-
%m
- в течение месяца
-
%d
для дня
- ... и т.д.
Вы можете найти это и другие символы форматирования в man date
.
Ответ 2
Простой пример в оболочке script
#!/bin/bash
current_date_time="`date +%Y%m%d%H%M%S`";
echo $current_date_time;
Без препинания: - +% Y% m% d% H% M% S
С пунктуацией: - +% Y -% m -% d% H:% M:% S
Ответ 3
Если вы используете Bash, вы также можете использовать одну из следующих команд:
printf '%(%Y%m%d%H%M%S)T' # prints the current time
printf '%(%Y%m%d%H%M%S)T' -1 # same as above
printf '%(%Y%m%d%H%M%S)T' -2 # prints the time the shell was invoked
Вы можете использовать опцию -v varname
для сохранения результата в $varname
вместо того, чтобы печатать его на stdout:
printf -v varname '%(%Y%m%d%H%M%S)T'
Пока команда даты всегда будет выполняться в подоболочке (т.е. в отдельном процессе), printf является встроенной командой и поэтому будет быстрее.