Thursday, April 1, 2010

UNIX Shell에서 filename parse하기(filename only, extension 등 알아내기)

F="/Users/My Work/thisfile.txt"

dirname
DIRNAME=`dirname "$F"`
echo $DIRNAME

filename
FILENAME=`basename "$F"`

filenameOnly
FILENAME_ONLY=`basename "$FILENAME" .txt`
echo $FILENAME_ONLY

결과 : thisfile

extension
EXT=`echo ${F##*.}`
echo $EXT

결과 : txt

주의 :
간혹 어떤 레퍼런스에서는 파일 확장자를 얻어내는 명령을
EXT=`echo ${F#*.}`
라고 쓴 경우가 있는데 이건 잘못된 것이다.이렇게 하면
"file.name.txt" 같은 파일의 확장자가 name.txt 로 얻어져 버린다.

키워드 : 확장자, 디렉토리명, 파일명, 폴더명

레퍼런스 :
Short Tip: Get file extension in Shell script
-> 매우 다양한 방법이 나와 있음. UNIX Shell로 파일명 다루는데 좋은 참고자료.

No comments:

Post a Comment