Bash에서 파일 확장자를 제거하고 싶다면?

배경

bash는 약간의 진입장벽이 있지만 익숙해지면 편리한 기능들이 많다. 그 중 ${}은 변수에 담긴 값을 삽입할 때 사용하지만 여기에는 보다 많은 기능들이 담겨 있다.

설명

내용 설명은 쓰는 사람도 읽는 사람도 지루하니 몇가지 대표적인 예시를 적어 둔다. 자세한 사항은 공식문서를 참조하자.

Slice String

string=01234567890abcdefgh
echo ${string:7}       # 7890abcdefgh
echo ${string:7:2}     # 78
echo ${string: -7:-2}  # bcdef

Remove String

x="./foo/fizzbuzz.bar.zip"
echo ${x#*/}     # foo/fizzbuzz.bar.zip
echo ${x##*/}    # fizzbuzz.bar.zip

y=${x##*/}       # fizzbuzz.bar.zip

echo ${y%.*}     # fizzbuzz.bar
echo ${y%%.*}    # fizzbuzz

Replace String

t="test"
echo ${test/t/-}   # -es-
echo ${test/#t/-}   # -est
echo ${test/%t/-}   # tes-
echo ${test/#*es/-} # -t

REF

... ... ... ...
Back