입력 날짜, 출력 날짜가 포함된 스크립트

입력 날짜, 출력 날짜가 포함된 스크립트

키보드 입력(날짜 dd:mm:yy)을 읽고 이를 변수에 저장한 다음 해당 날짜를 에코하는 bash 스크립트를 작성하고 싶습니다.

입력: 2015년 3월 8일

출력: 수요일

포맷하는 데 문제가 있습니다. 어떤 도움이라도 주시면 감사하겠습니다!

답변1

date-d플래그가 있는 입력을 받아들이고 인쇄합니다. 그러나 귀하와 같은 입력 형식은 MM/DD/YYYY로 처리됩니다. 하지만 너무 어려워서는 안 됩니다.

먼저 변수에 대한 입력을 가져옵니다.

read INPUT

이제 입력을 DD/MM/YYYY에서 MM/DD/YYYY로 변경해야 합니다. sed 및 awk를 사용하여 이 작업을 수행할 수 있습니다(다음을 사용하여 수행할 수도 있음 awk:

INPUT=`echo $INPUT | awk -F '/' '{t=$1;$1=$2;$2=t;gsub(" ", "/");print;}'`

이제 INPUT의 형식이 올바른 것이므로 이를 입력 date하고 날짜만 인쇄하도록 합니다.

date -d $INPUT +%A

함께 넣어보세요:

#!/bin/bash
read INPUT
INPUT=`echo $INPUT | awk -F '/' '{t=$1;$1=$2;$2=t;gsub(" ", "/");print;}'`
date -d $INPUT +%A

답변2

Perl에는 몇 가지 멋진 내장 날짜/시간 모듈이 있습니다:

$ perl -MTime::Piece -E '
     print "Input date (dd/mm/YYYY): ";
     chomp( $date = <> );
     $datetime = Time::Piece->strptime($date, "%d/%m/%Y");
     say $datetime->strftime("%e %B is a %A");
'
Input date (dd/mm/YYYY): 3/8/2015
 3 August is a Monday

관련 정보