여러 파일을 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
(일반적으로 rename
Debian 기반 시스템에서 호출됨) 다음을 수행할 수 있습니다.
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
실제로 파일 이름을 바꾸지 않고 다시 실행하세요.