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 не підтримується безпосередньо. У таких випадках слід розглянути можливість попередньої обробки рядка або використання іншого інструменту, призначеного для більш складних рутин розбору дат.