Итак, я пытаюсь написать простой скрипт в bash, который запрашивает у пользователя дату ввода в в следующем формате (YYYY-dd-mm). К сожалению, я застрял на первом шаге, который проверяет, что ввод находится в правильном формате. Я пробовал использовать «дату» без везения (так как он возвращает фактическую текущую дату). Я пытаюсь сделать это максимально простым. Спасибо за помощь!пользовательский формат даты ввода даты в bash
ответ
Использование регулярных выражений:
if [[ $date =~ ^[0-9]{4}-[0-3][0-9]-[0-1][0-9]$ ]]; then
или с Баш шариков:
if [[ $date == [0-9][0-9][0-9][0-9]-[0-3][0-9]-[0-1][0-9] ]]; then
Обратите внимание, что регулярное выражение будет принимать дату, как 9999-00-19
, которая не является правильной даты. Поэтому после проверки правильности этого регулярного выражения вы должны убедиться, что цифры верны.
IFS='-' read -r year day month <<< "$date"
Это поместит число в $year
$day
и $month
переменных.
date -d "$date" +%Y-%m-%d
Последний формат, -d позволяет ввести дату ввода. Если это неверно, оно вернет ошибку, которая может быть передана в бит ведро, если она верна, она вернет дату.
Модификаторы формата можно найти на странице руководства man 1 date
. Вот пример с массивом 3 даты:
dates=(2012-01-34 2014-01-01 2015-12-24)
for Date in ${dates[@]} ; do
if [ -z "$(date -d $Date 2>/dev/null)" ; then
echo "Date $Date is invalid"
else
echo "Date $Date is valid"
fi
done
Только примечания предостережения: набрав man date
в Google во время работы может производить некоторые NSFW результатов;)
один для ввода 'man date' в Google – pythonian29033
- 1. Формат ввода HTML = формат даты «даты»
- 2. Angularjs Формат даты ввода короткой даты
- 3. SAS - пользовательский формат даты
- 4. Формат поля ввода даты
- 5. Недопустимый формат даты в bash
- 6. AngularJS:. Формат ввода даты
- 7. Пользовательский формат даты в PHPExcel
- 8. Пользовательский формат даты в рубине?
- 9. Формат ввода типа даты и даты выборки
- 10. Пользовательский длинный формат даты - C#
- 11. JSON.NET deserialize пользовательский формат даты
- 12. получить пользовательский формат времени даты
- 13. jQuery tablesorter пользовательский формат даты
- 14. Пользовательский формат даты с NLog
- 15. Пользовательский формат даты для Moment.Js
- 16. datpicker пользовательский формат смены даты
- 17. Как подтвердить формат ввода даты
- 18. Форма ввода даты Формат поля
- 19. Проверьте формат даты ввода аргумента
- 20. Формат даты для поля ввода
- 21. Как преобразовать столбец даты файла в пользовательский формат ввода
- 22. Формат даты в dd/MM/yyyy в TextBoxДля даты ввода
- 23. Как использовать пользовательский формат даты для DatePicker
- 24. Формат даты для даты ColdFusion
- 25. Укажите формат даты ввода для/bin/date
- 26. sas7bdat формат даты в формат даты R
- 27. Формат даты/даты (-62135571600000)/
- 28. Формат даты даты
- 29. Как изменить формат ввода даты типа массива в формат даты нужной мне даты?
- 30. Правильный формат даты ввода даты в формате JQuery-UI
Совершенных, он делает именно то, что он должен ! Спасибо! – lukabix22