`pwd`, 그러나 처음 n 디렉토리는 생략

`pwd`, 그러나 처음 n 디렉토리는 생략

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},,'

-EGNU 및 BSD sed와 함께 작동하며가까운 미래에 표준이 될 것입니다.

관련 정보