다음과 같은 날짜 스탬프가 포함된 파일이 포함된 폴더의 이름을 바꾸려고 합니다.
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