shell 提取文件名和目录名

5年以前  |  阅读数:782 次  |  编程语言:Shell 

1、提取文件名

使用${var##*/}该方式是从左开始最大化匹配到字符"/",然后截掉左边内容(包括字符"/"),返回余下右侧部分。

var="/dir1/dir2/file.txt"
echo ${var##*/}

此脚本运行结果:file.txt

在shell脚本中,可以使用变量来保存这个结果,再加以利用,如file=${var##*/}

2,提取文件后缀

接上面的例子,如果我们将"/" 换成"." ,则可以提取文件后缀

$ var=/dir1/dir2/file.txt  
$ echo ${var##*.}  

此脚本运行结果:txt

如果文件的后缀不仅有一个,例如,file.tar.gz,命令${var##*.}仅能提取最后一个后缀。

3,提取文件路径

使用${var%/*}从右开始第一次匹配到字符"/",然后截掉右边内容(包括字符"/"),返回余下左侧部分。

$ var=/dir1/dir2/file.txt  
$ echo ${var%%/*}  

此脚本运行结果:/dir1/dir2

4,直接使用basename与dirname提取信息

basename的作用提取文件名,使用方法为basename NAME [SUFFIX],例子如下:

var=/dir1/dir2/file.txt  
echo $(basename ${var})  

此脚本运行结果:file.txt

后缀(SUFFIX)是一个可选项。所以,若只想提取出文件名file,而不带有后缀,还可以在变量的后面加上后缀名,例子如下:

var=/dir1/dir2/file.txt  
echo $(basename ${var} .txt)

此脚本运行结果:file

dirname该命令的作用是从路径中提取出路径名,使用方法为 dirname NAME,使用例子如下:

var=/dir1/dir2/file.txt  
echo $(dirname ${var})  

此脚本运行结果:/dir1/dir2

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
贪吃蛇
文件下载
双位运算符
发送邮件
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
提取后缀名
年的日历图
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例