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