2015-01-26 1 views

답변

1
$ MY_PATH=first/second/third 
$ sed -e 's#[^/]\+/\?#../#g' <<<"$MY_PATH" 
../../../ 

마지막으로 슬래시가없는 경로를 얻는 가장 쉬운 방법은 제거하는 것입니다.

$ MY_PATH=first/second/third 
$ cdup=$(sed -e 's#[^/]\+/\?#../#g' <<<"$MY_PATH") 
$ echo "$cdup" 
../../../ 
$ echo "${cdup%/}" 
../../.. 

또한 (AN 추악한를 생성하지만, 여전히 유효한 경로) 같은 것을 사용할 수 있습니다 : 후행 슬래시가없는 경로를 얻을 수

$ MY_PATH=first/second/third 
$ sed -e 's#[^/]\+/\?#./.#g' <<<"$MY_PATH" 
./../../. 

더 나은 대안이 될 수 있지만, 나는 그것에 대해 더 생각해야 할 것이다.

+0

마지막 "/"'없이 어떻게 달성 할 수 있습니까? – nilo

+1

@nilo 조금 더 생각하고 그걸 가지고 놀아 봐야 겠지만 첫 번째 버전은 이제 답변에 추가됩니다. –