如何使用sed
(不是dirname
)移除最后一个目录,如下所示:
echo "/dir1/dir2/dir3/dir4" | sed .....
所以我会得到/dir1/dir2/dir3
。
答案 0 :(得分:27)
您不必使用外部工具
$ a="/dir1/dir2/dir3/dir4"
$ echo ${a%/*}
答案 1 :(得分:7)
sed 's,/*[^/]\+/*$,,'
如果它是shell脚本的一部分,那么dirname
肯定会更清楚。
答案 2 :(得分:3)
echo“/ etc1 / etc2 / etc3 / etc”| sed -e“s // [^ /] * $ //”
产生
/ ETC1 / ETC2 / etc3
在最后一个不包含其他斜杠的斜杠之后,基本上剥去了最后的任何东西。
答案 3 :(得分:1)
你可以使用" dirname" shell命令:
dirname /dir2/dir3/dir4