2010-08-05 2 views
1

다음은 샘플 문자열입니다. 이 형식의 출력을 얻고 싶습니다.문자열 조작이 필요합니다.

문자열 :

/vob/TEST/[email protected]@/main/ch_vobsweb/1/VOBSWeb/main/ch_vobsweb/4/VobsWebUI/main/ch_vobsweb/2/VaultWeb/main/ch_vobsweb/2/func

파일 이름을 된 .js, 경로

func.js을 제기, VOBSWeb/VosWebUI/VaultWeb/func.js

파일 이름은 전체 문자열의 끝 부분에 나와, 그것은 경로로되어있어한다/1/VOBSWeb/그리고/4/VobsWebUI 그리고/2/vau와 같은 각 숫자 값 다음의 문자들을 사용하여 제거 할 수 있습니다. ltWeb)

+0

아야. 두 번째 부분을 하나의 정규 표현식으로 바꾸는 데 어려움을 겪을 것이라고 생각합니다. 아마도 몇 줄의 Perl을 작성하는 것이 더 쉽습니다. – Rup

+0

플랫폼, 도구, 언어는 무엇입니까? '쉘 스크립팅 (shell-scripting) '은 다수를 포괄합니다. . . –

답변

0

하나의 방법

$ string="/vob/TEST/[email protected]@/main/ch_vobsweb/1/VOBSWeb/main/ch_vobsweb/4/VobsWebUI/main/ch_vobsweb/2/VaultWeb/main/ch_vobsweb/2/func.js" 
$ path=$(echo "$string" | sed "s|\/[0-9]\/|\n|g"|sed 's|\/.*||' | tr "\n" "/"|sed 's/\/$//') 
$ echo ${path##*/} 
func.js 
$ echo ${path%\/*} 
/VOBSWeb/VobsWebUI/VaultWeb 
관련 문제