如何从sed路径中删除最后一个目录?

时间:2010-07-04 13:54:16

标签: shell sed path

如何使用sed(不是dirname)移除最后一个目录,如下所示:

echo "/dir1/dir2/dir3/dir4" | sed .....

所以我会得到/dir1/dir2/dir3

4 个答案:

答案 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