파일 이름에 현재 날짜를 추가하여 여러 파일을 이동/이름 바꾸는 방법

파일 이름에 현재 날짜를 추가하여 여러 파일을 이동/이름 바꾸는 방법

여러 파일을 mv/이름 바꾸기하고 해당 이름에 현재 날짜를 추가할 수 있는 Red Hat의 bash 스크립트를 수정해야 합니다. 예를 들어 다음과 같은 대용량 파일이 있습니다.

BSS4C.SASS.CCAC.I101010.P211008

BSS4C.SASS.CSVC.I102210.P211008

(다음으로 시작하는 파일이 28개 더 있습니다.PBSS4C.* 그리고 *로 끝남.P211008)

이 파일에211008은 처리 날짜를 나타냅니다. 처리 날짜를 파일 이름의 현재 날짜로 바꾸고 교체해야 합니다.그리고시간파일 이름의 시작 부분에.

예상되는 결과:

시간BSS4C.SASS.CCAC.I101010.P211011

시간BSS4C.SASS.CSVC.I102210.P211011

미리 감사드립니다.

답변1

액세스 권한이 있는 경우 perl-rename(일반적으로 renameDebian 기반 시스템에서 호출됨) 다음을 수행할 수 있습니다.

rename -n "s/^P/T/; s/\.P211008$/\.P$(date +'%y%m%d')/" PBSS4C.*P211008

이렇게 하면 실제로 이름을 바꾸지 않고 수행할 변경 사항만 인쇄 -n됩니다 . rename원하는 결과를 얻을 것이라고 확신하는 경우에는 을 제외하고 그대로 두십시오 -n.

없는 경우 perl-rename다음을 수행할 수 있습니다.

date=$(date +'%y%m%d')
for i in PBSS4C.*P211008; do 
    newName=${i/P/T} 
    newName=${newName/.P211008/}
    echo mv -- "$i" "$newName."P"$date"; 
done

여기에서 실행하고 원하는 대로 작동하는지 확인한 후에는 echo실제로 파일 이름을 바꾸지 않고 다시 실행하세요.

관련 정보