날짜 형식에 문제가 있습니다. 한 형식에서 다른 형식으로 또는 그 반대로 변경하고 싶습니다. 내 날짜 형식은
형식 1
YYYY-MM-DD
형식 2
MM/DD/YYYY
형식 1을 형식 2로, 형식 2를 형식 1로 변경하고 싶습니다.
답변
이를 위해 GNU ‘날짜’를 사용하십시오. 또한 다른 형식으로 변환합니다 ( date --help
형식 목록 참조 ).
$ date -d 2013-07-05 +%m/%d/%Y
07/05/2013
$ date -d 07/05/2013 +%F
2013-07-05
답변
텍스트 형식으로 변환해야하는 날짜가 있다고 가정
echo '2013-12-13' | awk -v FS=- -v OFS=/ '{print $2,$3,$1}'
그 반대
echo '12/13/2013' | awk -v FS=/ -v OFS=- '{print $3,$1,$2}'
답변
$ echo YYYY-MM-DD | { IFS=- read y m d && echo "$m/$d/$y"; }
MM/DD/YYYY
해당 날짜가 많은 파일이있는 경우 한 줄에 하나씩 :
awk -F- -vOFS=/ '{print $2,$3,$1}' < that-file
답변
다음과 같이 sed를 사용하십시오.
$ echo '2013-12-13' | sed -r 's/([[:digit:]]{2,4})-([[:digit:]]{1,2})-([[:digit:]]{1,2})/\2\/\3\/\1/g'
12/13/2013
$ echo '12/13/2013' | sed -r 's/([[:digit:]]{1,2})\/([[:digit:]]{1,2})\/([[:digit:]]{2,4})/\3-\1-\2/g'
2013-12-13
답변
파일 이름에서 날짜 형식을 변경하는 방법에 대한 의견에서 명확한 질문에 대답하려면 drewbenn의 gnu date
접근 방식을 사용하십시오. 이 명령은 로컬 폴더에서 모든 파일을 찾고 파일 이름 만으로 파이프하고 이름을 바꾸는 두 번째 인수로 수정 된 파일 이름을 xargs
대체합니다 .date
mv
명령 bash
을 bash
평가할 때 변수를 대체로 약간 체계적으로 사용하는 것이 필요 합니다 date
.
find ./ -printf '%f\n' | xargs -I '{}' sh -c 'mv $1 $(date -j -f %Y-%m-%d $1 +%m/%d%Y)' -- {} \;