开源中文网

您的位置: 首页 > Shell > 正文

linux中shell脚本提取路径中提取目录名、文件名及扩展名

来源: 网络整理  作者: 佚名

在shell中要从一个路径中提示目录名、文件名及扩展名的话我们要如何实现呢,对于菜鸟新手肯定觉得复杂了,但是对于高手简单的很,我们来看方法。
编写脚本(Shell)时,经常会遭遇包括全路径的文件名里提取路径名、文件名等。
在这里包括全路径的文件名为
/usr/local/apach2/etc/httpd.conf
定义为
FILE=”/usr/local/apach2/etc/httpd.conf”
(1)提取文件名
FILENAME=${FILE##*/}
##*/ 表示删除从最前面开始至最后一个/出现的部分,因此FILENAME为httpd.conf。
(2)提取文件扩展名
EXT=${FILE##*.}
和(1)一样,删除从最前面开始至最后一个.部分,EXT为conf。
(3)提取httpd
WITHOUTEXT=${FILE%.*}
%.* 删除从最后开始至第1次出现.的部分,WITHOUT为/usr/local/apach2/etc/httpd。
(4)提取目录名
DIRNAME=${FILE%/*}
%/* 删除从最后开始至第1次出现/的部分,DIRNAME为/usr/local/apach2/etc。
##和%%表示最长一致,而#和%表示最短一致。#表示从前面,%表示从后面。
以下为脚本样本
 
#!/bin/bash
FILE="/usr/local/apach2/etc/httpd.conf"
FILENAME=${FILE##*/}
EXT=${FILE##*.}
WITHOUTEXT=${FILE%.*}
DIRNAME=${FILE%/*}
echo $FILENAME
echo $EXT
echo $WITHOUTEXT
echo $DIRNAME
执行结果为
httpd.conf
conf
/usr/local/apach2/etc/httpd
/usr/local/apach2/etc

Tags:目录名 扩展名 文件名
关于开源中文网 - 联系我们 - 广告服务 - 网站地图 - 版权声明