1、给出一个文件的路径 ,用sed取出此路径最后基名前的路径
[root@Centos7 test1]# pwd
/root/test/test1
[root@Centos7 test1]# pwd |sed -r 's#(^/.*/+).*/?$#\1#'
/root/test/
-r 支持扩展正则表达式,以#代替/做为替换的分隔符,以小括号进行分组,取出以/开头中间包含任意个任意字符且最后出现至少一次/,再跟任意个任意字符及0到1次/结尾,括号内的内容表示路径最后一节前的部份。用\1引用进行替换,替换整个匹配到的路径内容
2、给出一个文件的路径,用sed取出此路径最后的文件名或是目录名
[root@Centos7 test1]# echo `pwd`/abcd |sed -r 's#^/.*/+(.*)/?#\1#'
abcd
管道符前的不解释了,只是给出一个文件的路径,后面正则表达式的意思是,以/开头之后包含任意多个任意字符,之后/至少要出现一次,之后任意多个任意字符且最后一个/可以有也可以无。用\1引用第二个任意多个任意字符,即为最后的目录名或是文件名。