나는 unix 디렉토리에서 다음 형식의 파일을 사용하기 위해 sed 또는 다른 명령을 사용합니다.
Owner.Env.File_010513_1200_ver1.expdp
Owner.Env.File_010513_1200_ver2.expdp
Owner.Env.File_010513_1200_ver3.expdp
Owner.Env.File_010513_1200_ver4.expdp
이 파일의 이름을 다음 형식으로 바꾸고 싶습니다
Owner.Env.File_100613_2300_ver1.expdp
Owner.Env.File_100613_2300_ver2.expdp
Owner.Env.File_100613_2300_ver3.expdp
Owner.Env.File_100613_2300_ver4.expdp
답변1
for file in Owner.Env.File_10513_1200_ver*.expdp; do
mv "$file" "${file/010513_1200/100613_2300}"
done
답변2
파일이 너무 많지 않으면(수만 개) 이 작업을 수행해야 합니다(그런 다음 ls Owner.Env.File_010513_1200_ver*.expdp
파일이 남아 있는지 확인하고 그렇다면 명령을 반복하십시오).
rename File_010513_1200_ File_100613_2300_ Owner.Env.File_010513_1200_ver*.expdp
많은 수의 파일(그리고 이상한 이름을 가진 파일)을 처리하기 위한 GNU의 대안은 다음과 같습니다:
find . -regex ".*/Owner.Env.File_010513_1200_ver[1-9][0-9]*.expdp" -print0 | \
xargs -0 rename File_010513_1200_ File_100613_2300_