대량 파일의 이름을 바꾸고 확장자를 제거하는 방법

대량 파일의 이름을 바꾸고 확장자를 제거하는 방법

아래 파일의 이름을 바꿔야 합니다. .job-209675다음으로 시작하는 파일 이름 만 제거 SOA하고 이 디렉토리에 다른 파일이 있으므로 원본 파일 이름은 그대로 유지하고 싶습니다.

예를 들어
이전: ./SOA_990377897NW0001_1557340549734.xml.job-2074645
이후:./SOA_990377897NW0001_1557340549734.xml

답변1

변수에 filename파일 이름 중 하나가 포함되어 있으면 ${filename%.job-*}마지막 점 뒤의 비트가 없는 이름이 됩니다.

파일 이름을 반복하면서 각 이름을 차례로 바꾸려면,

for filename in SOA_*.job-*; do
    echo mv -i "$filename" "${filename%.job-*}"
done

보호를 위해 존재 echo합니다. 루프를 한 번 실행하고 출력을 검사한 다음 echo정확하다고 생각되면 제거해야 합니다. 기존 파일을 덮어쓰기 전에 확인을 요청하는 -i옵션입니다 .mv

이는 모든 관련 파일(다른 파일 제외)이 패턴과 일치한다고 가정합니다 SOA_*.job-*.

관련 정보