Fish Shell:
Розбір дати з рядка
Як це зробити:
У Fish Shell немає вбудованих команд, спеціально призначених для розбору дати з рядка. Замість цього ви покладаєтеся на зовнішні утиліти, як-от date
(доступна в Linux і macOS), або використовуєте популярні інструменти сторонніх розробників, такі як GNU date
, для більш складного розбору. Ось як до цього підійти:
Використання date
у Fish:
Щоб розібрати рядок дати у форматі “YYYY-MM-DD”, ви можете використати команду date
з опцією -d
(або --date
для GNU date), за якою йде рядок. Опція +
використовується для форматування результату.
set date_str "2023-04-01"
date -d $date_str +"%A, %d %B %Y"
# Вивід: Субота, 01 квітня 2023
Для macOS (який вимагає іншого формату для прапорців -j
та -f
):
set date_str "2023-04-01"
date -j -f "%Y-%m-%d" $date_str +"%A, %d %B %Y"
# Вивід: Субота, 01 квітня 2023
Використання GNU date
для складного розбору:
GNU date
є більш гнучкою щодо форматів рядків. Вона може автоматично виявляти багато поширених форматів рядків дат без явного вказування формату введення:
set complex_date_str "1 квітня 2023 14:00"
date -d "$complex_date_str" '+%Y-%m-%d %H:%M:%S'
# Вивід: 2023-04-01 14:00:00
Однак, коли працюєте з рядками дат, які можуть не бути автоматично розпізнані, або коли потрібен точний контроль над форматом введення, явне вказування формату введення з GNU date
не підтримується безпосередньо. У таких випадках слід розглянути можливість попередньої обробки рядка або використання іншого інструменту, призначеного для більш складних рутин розбору дат.