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"
# ผลลัพธ์: Saturday, 01 April 2023
สำหรับ macOS (ซึ่งต้องการรูปแบบต่าง ๆ สำหรับตัวประชุม -j
และ -f
):
set date_str "2023-04-01"
date -j -f "%Y-%m-%d" $date_str +"%A, %d %B %Y"
# ผลลัพธ์: Saturday, 01 April 2023
การใช้ GNU date
สำหรับการแยกวันที่ที่ซับซ้อน:
GNU date
มีความยืดหยุ่นมากขึ้นกับรูปแบบสตริง สามารถตรวจจับรูปแบบสตริงวันที่ที่พบบ่อยโดยไม่ต้องระบุรูปแบบข้อมูลนำเข้าโดยชัดเจน:
set complex_date_str "April 1, 2023 14:00"
date -d "$complex_date_str" '+%Y-%m-%d %H:%M:%S'
# ผลลัพธ์: 2023-04-01 14:00:00
อย่างไรก็ตามเมื่อทำงานกับสตริงวันที่ที่อาจไม่ได้รับการรู้จักอัตโนมัติหรือเมื่อควบคุมรูปแบบข้อมูลนำเข้าอย่างแม่นยำจำเป็น การระบุรูปแบบข้อมูลนำเข้ากับ GNU date
ไม่ได้รับการสนับสนุนโดยตรง ในกรณีเหล่านั้น พิจารณาประมวลผลสตริงล่วงหน้าหรือใช้เครื่องมืออื่นที่ออกแบบมาสำหรับกระบวนการแยกวันที่ที่ซับซ้อนยิ่งขึ้น