문자열을 경로와 응용 프로그램으로 분할

문자열을 경로와 응용 프로그램으로 분할

다음과 같은 문자열이 있는 경우

/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/ basenamedirname더 우아합니다. 당신은 또한 볼 수 있습니다이 문제더 많은 토론을 해보세요.

관련 정보