파일 이름을 일괄적으로 바꾸고 날짜 스탬프를 DD-MM-YYYY에서 YYYY-MM-DD로 변환하는 방법은 무엇입니까?

파일 이름을 일괄적으로 바꾸고 날짜 스탬프를 DD-MM-YYYY에서 YYYY-MM-DD로 변환하는 방법은 무엇입니까?

다음과 같은 날짜 스탬프가 포함된 파일이 포함된 폴더의 이름을 바꾸려고 합니다.

string_DD-MM-YYYY_hhmm.pdf

이 형식으로:

string_YYYY-MM-DD_hhmm.pdf

파일 이름으로 정렬할 때 날짜별로 정렬됩니다.

예: PB_KAZ_KtoNr_0463266665_01-02-2014_0341.pdf가 되어야 합니다 PB_KAZ_KtoNr_0463266665_2014-02-01_0341.pdf.

나는 이것을 찾았다유제하지만 DD-MM-YYYY가 아닌 DDMMYYYY 형식에 관한 것이며 제 경우에는 대답이 너무 복잡합니다. string내용과 길이(24자)는 항상 동일하므로 위치별로 문자열을 분할하고 재조립하는 간단한 명령이면 충분합니다 .

미리 감사드립니다!

답변1

Perl을 사용하여 이름 바꾸기(독립 실행형 명령):

rename -n 's/(.*)_(.*)-(.*)-(.*)_(.*.pdf)/$1_$4-$3-$2_$5/' *.pdf

문제가 없으면 삭제하세요 -n.

답변2

이는 특히 파일이 많은 경우 대략적인 접근 방식이지만 가장 기본적인 awk 접근 방식은 다음과 같습니다.

폴더에 string_DD-MM-YYYY_hhmm.pdf를 제외한 다른 PDF가 없고 string_ 부분의 길이가 24자라고 가정합니다.

cd폴더로 이동하여 다음을 실행합니다.

for i in *.pdf; do mv $i `\ls -1 $i | awk '{print substr ($0, 0, 24)}'``\ls -1 $i | awk -F[_.] '{print$(NF-1)}'| awk -F- '{print$3"-"$2"-"$1}'`.pdf; done

관련 정보