
basename
Bash 스크립트를 사용하여 파일의 접미사를 제거하고 싶습니다 . 하지만 이 명령은 대소문자를 구분하는 방식으로만 접미사를 제거합니다.
대소문자를 구분하지 않고 확장 프로그램을 제거하려면 어떻게 해야 합니까?
답변1
Bash에서 확장 기능을 제거하려면 외부 도구 없이 제거할 수 있습니다. 그런 다음 다음으로 전달하세요 basename
.
$ f=/path/to/some/file.foo.bar
$ basename "${f%.*}"
file.foo
대소문자 혼합 확장:
$ f=/path/to/some/file.foo.Bar
$ basename "${f%.*}"
file.foo
여기는%
문자열 조작. 의 내용 뒤에서 가장 짧게 일치하는 하위 문자열을 제거합니다 f
. 는 .*
대소문자에 관계없이 점과 0개 이상의 문자와 일치합니다.
답변2
매개변수 확장 사용
file=/home/johndoe/cv.DOC
basename ${file%.[Dd][Oo][Cc]}