[Shell Script] 확장자 일괄 변경하기
확장자 한번에 변경하기
확장자가 제각각인 파일들을 하나의 확장자로 변경하고 싶을 때 사용하는 스크립트 입니다.
#!/bin/sh
for filename in * #-------------1
do
case "$filename" in #-------------2
*.htm | *.html) #-------------3
#파일 명 앞 부분 취득
headname=${filename%.*} #-------------4
#파일확장명 전환
mv "$filename" "${headname}.txt" #--------------5
;;
esac
done
현재파일
제 각각으로 만들어진 파일들이있는 폴더에 작성한 스크립트를 저장했습니다.
이 스크립트는 현재 디렉터리에 있는 확장자가 .htm과 .html인 모든 파일을 .txt 파일 확장자로 바꿉니다 .
#1 에서 *으로 현재 디렉터리 파일 목록을 대상으로 셸 변수 filename을 써서 순서대로 처리합니다 .
for문에 in에 *를 지정하면 파일명이 확장되어서 현재 디렉터리 파일 목록을 간단히 작성합니다.
#2 에서 파일명으로 패턴을 매칭합니다.
case문을 사용하면 파일명에서 지정 문자열을 포함한것을 골라서 간단히 처리할 수 있습니다 다.
#3 에서 패턴을 작성합니다
*.htm | *.html)
#4 에서 파라미터 확장을 사용하였습니다.
지정한 셸 변수에서 %.*fh "(.) + 문자열"을 삭제
확장자를 제외한 부분을 얻어 셸 변수를 headname 에 대입.
특이사항
이 스크립트는 확장자만 다른 파일이 있으면 파일을 덮어쓰게 됩니다 .