다음과 같은 문자열이 있는 경우
/home/user/a/directory/myapp.app
그렇지 않으면
/home/user/myapp.app
두 개의 변수(경로 및 응용 프로그램)만 갖도록 분할하려면 어떻게 해야 합니까?
예를 들어
path="/home/user/"
appl="myapp.app"
문자열을 분할하는 예를 많이 보았지만 어떻게 마지막 부분을 얻고 나머지 부분을 모두 결합할 수 있습니까?
답변1
basename
이 목적으로 및 명령을 dirname
사용할 수 있습니다. 예를 들면 다음과 같습니다.
$ basename /home/user/a/directory/myapp.app
myapp.app
$ dirname /home/user/a/directory/myapp.app
/home/user/a/directory
자세한 내용은 편하게 공연 man basename
과 를 통해 확인하시기 바랍니다 man dirname
.
답변2
POSIX 셸의 경우:
$ str=/home/user/a/directory/myapp.app
$ path=${str%/*}
$ app=${str##*/}
$ printf 'path is: %s\n' "$path"
path is: /home/user/a/directory
$ printf 'app is: %s\n' "$app"
app is: myapp.app
두 프로세스의 분기를 피하십시오.
/myapp.app
, myapp.app
및 이면 /path/to/myapp.app
/ basename
가 dirname
더 우아합니다. 당신은 또한 볼 수 있습니다이 문제더 많은 토론을 해보세요.