pwd
给出当前目录的完整路径,例如:
/first/second/third/anotherdir/thefinaldirectory
我怎样才能省略前n个,比如说三个目录,这样就只
/anotherdir/thefinaldirectory
被退回?
我想这应该可以与sed
?
答案1
Bash 有一些内置的字符串操作:
echo "/${PWD#/*/*/*/}"
答案2
您可以cut
为此使用,例如:
pwd | cut -d/ -f 4-
pwd
prints 分割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 一起工作,并将在不久的将来成为标准。