![`pwd`, 그러나 처음 n 디렉토리는 생략](https://linux55.com/image/86646/%60pwd%60%2C%20%EA%B7%B8%EB%9F%AC%EB%82%98%20%EC%B2%98%EC%9D%8C%20n%20%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EB%8A%94%20%EC%83%9D%EB%9E%B5.png)
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와 함께 작동하며가까운 미래에 표준이 될 것입니다.