
pwd
현재 디렉터리의 전체 경로를 제공합니다. 예:
/first/second/third/anotherdir/thefinaldirectory
첫 번째 n개, 예를 들어 3개의 디렉토리를 생략하려면 어떻게 해야 합니까?
/anotherdir/thefinaldirectory
돌아왔어?
나는 이것이 작동해야 한다고 생각합니까 sed
?
답변1
Bash에는 몇 가지 내장 문자열 작업이 있습니다.
echo "/${PWD#/*/*/*/}"
답변2
예를 들어 다음과 같이 사용할 수 있습니다 cut
.
pwd | cut -d/ -f 4-
pwd
인쇄는 by의 출력을 분할 /
하고 네 번째 필드부터 끝까지 인쇄합니다.
귀하의 경우에는 다음과 같습니다:
echo "/first/second/third/anotherdir/thefinaldirectory" | cut -d/ -f 5-
답변3
모든 POSIX의 경우 sed
:
pwd | sed 's,\(/[^/]*\)\{3\},,'
또는:
pwd | sed -E 's,(/[^/]*){3},,'
-E
GNU 및 BSD sed와 함께 작동하며가까운 미래에 표준이 될 것입니다.