sed 또는 다른 명령을 사용하여 아래 형식의 unix 디렉토리에 파일이 있습니다.
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_