shell脚本获取文件名字
2022/6/3 3:20:23
本文主要是介绍shell脚本获取文件名字,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
我们有时候需要获取某个文件路径的文件名或者文件所在目录名,那么如何操作呢?下面介绍两种方法。
一、利用 ${}
1、${var##*/}
该命令的作用是去掉变量var从左边算起的最后一个’/’ 字符及其左边的内容,返回从左边算起的最后一个’/’(不含该字符)的右边的内容。使用例子及结果如下:
2、${var##*.}
该命令的作用是去掉变量var从左边算起的最后一个 ‘.’ 字符及其左边的内容,返回从左边算起的最后一个’.’(不含该字符)的右边的内容。使用例子及结果如下:
3、${var#*.}
该命令的作用是去掉变量var从左边算起的第一个’.‘字符及其左边的内容,返回从左边算起第一个’.’(不含该字符)的右边部分的内容。使用例子及结果如下:
4、${var%/*}
该命令的使用是去掉变量var从右边算起的第一个’/‘字符及其右边的内容,返回从右边算起的第一个’/’(不含该字符)的左边的内容。使用例子及结果如下:
5、${var%%.*}
该命令的使用是去掉变量var从右边算起的最后一个’.‘字符及其右边的内容,返回从右边算起的最后一个’.’(不含该字符)的左边的内容。使用例子及结果如下:
6、${}总结
${}并不是专门为提取文件名或目录名的,它的使用是变量的提取和替换等等操作,它可以提取非常多的内容,并不一定是上面五个例子中的’/‘或’.’。
#:表示从左边算起第一个
%:表示从右边算起第一个
##:表示从左边算起最后一个
%%:表示从右边算起最后一个
换句话来说,#总是表示左边算起,%总是表示右边算起。
*:表示要删除的内容,对于#和##的情况,它位于指定的字符(例子中的’/‘和’.’)的左边,表于删除指定字符及其左边的内容;对于%和%%的情况,它位于指定的字符(例子中的’/‘和’.’)的右边,表示删除指定字符及其右边的内容。这里的’'的位置不能互换,即不能把号放在#或##的右边,反之亦然。
例如:${var%%x*}表示找出从右边算起最后一个字符x,并删除字符x及其右边的字符。
二、basename和dirname
1. basename
该命令的作用是从路径中提取出文件名,使用方法为basename NAME [SUFFIX]
(1)从路径中提出出文件名(带后缀),例子如下:
(2)从上面命令的用法中可以看到,后缀(SUFFIX)是一个可选项,若只想提取出文件名file,而不带有后缀,还可以在变量的后面加上后缀名,例子如下:
2. dirname
该命令的作用是从路径中提取出目录名,使用方法为 dirname NAME
使用例子如下:
这篇关于shell脚本获取文件名字的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)
- 2024-05-30【Java】百万数据excel导出功能如何实现