位置: 编程技术 - 正文

Linux shell 之 提取文件名和目录名的一些方法总结(linux shell怎么用)

编辑:rootadmin

推荐整理分享Linux shell 之 提取文件名和目录名的一些方法总结(linux shell怎么用),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linux shell语句,linux shell语句,linux shell怎么用,linux shell 技巧,linux shell gui,linux获取shell输出,linux shell语句,linux shell语句,内容如对您有帮助,希望把文章链接给更多的朋友!

很多时候在使用Linux的shell时,我们都需要对文件名或目录名进行处理,通常的操作是由路径中提取出文件名,从路径中提取出目录名,提取文件后缀名等等。例如,从路径/dir1/dir2/file.txt中提取也文件名file.txt,提取出目录/dir1/dir2,提取出文件后缀txt等。

下面介绍两种常用的方法来进行相关的操作。

一、使用${}

1、${var##*/}该命令的作用是去掉变量var从左边算起的最后一个'/'字符及其左边的内容,返回从左边算起的最后一个'/'(不含该字符)的右边的内容。使用例子及结果如下:

从运行结果可以看到,使用该命令,可以提取出我们需要的文件名file.txt。

若使用时在shell程序文件中,可以使用变量来保存这个结果,再加以利用,如file=${var##*/}

2、${var##*.}

该命令的作用是去掉变量var从左边算起的最后一个'.'字符及其左边的内容,返回从左边算起的最后一个'.'(不含该字符)的右边的内容。使用例子及结果如下:

从运行结果可以看到,使用该命令,可以提取出我们需要的文件后缀。

如果文件的后缀不仅有一个,例如,file.tar.gz,命令${var##*.}仅能提取最后一个后缀,而我想提取tar.gz时该怎么办?那么就要用下面所说的${var#*.}命令了。

3、${var#*.}

该命令的作用是去掉变量var从左边算起的第一个'.'字符及其左边的内容,返回从左边算起第一个'.'(不含该字符)的右边部分的内容。使用例子及结果如下:

从运行结果可以看到,使用该命令,可以提取出文件的多个后缀。

4、${var%/*}

该命令的使用是去掉变量var从右边算起的第一个'/'字符及其右边的内容,返回从右边算起的第一个'/'(不含该字符)的左边的内容。使用例子及结果如下:

从运行的结果可以看到,使用该命令,可以提取出我们需要的文件所在的目录

5、${var%%.*}

该命令的使用是去掉变量var从右边算起的最后一个'.'字符及其右边的内容,返回从右边算起的最后一个'.'(不含该字符)的左边的内容。使用例子及结果如下:

当我们需要建立一个与文件名相同名字(没有后缀)的目录与对应的文件相对应时,就可以使用该命令来进行操作。例如,解压文件的情况就与此类似,我们压缩文件file.zip时,会在与file.zip同级目录下建立一个名为file的目录。

Linux shell 之 提取文件名和目录名的一些方法总结(linux shell怎么用)

6、${}总结

其实${}并不是专门为提取文件名或目录名的,它的使用是变量的提取和替换等等操作,它可以提取非常多的内容,并不一定是上面五个例子中的'/'或'.'。也就是说,上面的使用方法只是它使用的一个特例。

看到上面的这些命令,可能会让人感到非常难以理解和记忆,其实不然,它们都是有规律的。

#:表示从左边算起第一个

%:表示从右边算起第一个

##:表示从左边算起最后一个

%%:表示从右边算起最后一个

换句话来说,#总是表示左边算起,%总是表示右边算起。

*:表示要删除的内容,对于#和##的情况,它位于指定的字符(例子中的'/'和'.')的左边,表于删除指定字符及其左边的内容;对于%和%%的情况,它位于指定的字符(例子中的'/'和'.')的右边,表示删除指定字符及其右边的内容。这里的'*'的位置不能互换,即不能把*号放在#或##的右边,反之亦然。

例如:${var%%x*}表示找出从右边算起最后一个字符x,并删除字符x及其右边的字符。

看到这里,就可以知道,其实该命令的用途非常广泛,上面只是指针文件名和目录名的命名特性来进行提取的一些特例而已。

二、basename和dirname

${}并不是专门为提取文件名和目录名设计的命令,那么basename和dirname命令就是专门为做这一件事而已准备的了。

1、basename

该命令的作用是从路径中提取出文件名,使用方法为basename NAME [SUFFIX]。

1)从路径中提出出文件名(带后缀),例子如下:

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

2、dirname

该命令的作用是从路径中提取出目录名,使用方法为 dirname NAME

使用例子如下:

这样就提取出了file.txt文件所在的目录。

注:该命令不仅能提取出普通文件所的目录,它能提取出任何文件所在的目录,例如目录所在的目录,如下:

它提取出了目录dir2所在的目录dir1.

标签: linux shell怎么用

本文链接地址:https://www.jiuchutong.com/biancheng/371548.html 转载请保留说明!

上一篇:Linux下压缩与解压命令详解(linux 压缩解压缩)

下一篇:详解shell 遍历文件夹内所有文件并打印绝对路径(shell中遍历数组)

  • 只拿了营业执照十年无办税好注销吗
  • 新准则下对亏损的规定
  • 企业对外投资收益税收
  • 装修收入如何填报增值税表
  • 培训费用属于
  • 公司的社保缴费基数不是工资数
  • 等额本息还款的特点
  • 发票备注没写
  • 直接进费用的固定资产
  • 还有预算外资金的说法吗
  • 二房东转租如何办理营业执照
  • 营改增对电信业的影响及对策
  • 以现金形式发放的福利怎么入账
  • 贷款金融资产减值的会计分录怎么写?
  • 企业对外借款是怎么规定的
  • 客户退回发票会退回吗
  • 一般纳税人增值税申报操作流程
  • 所得税网上申报表
  • 技术服务费属于无形资产吗
  • 小规模纳税人不允许开具零税率发票
  • 一般纳税人辅导期预缴
  • 怎么查找地方教育附加税的计税依据?
  • 建立账套的简单操作
  • 测试账户收入怎么做
  • 视同销售收入计入会计利润中吗
  • 购买方开具红字信息表
  • 一般纳税人专票和普票有什么区别
  • 残疾人保障金怎么做账
  • 公司的现金管理规定
  • PHP:oci_set_action()的用法_Oracle函数
  • 期末结转之前有哪些注意事项
  • 伊吕波赛道
  • watch监听不到props数据改变
  • vue面试题2020
  • Selenium.Webdriver最新语法教程(附Chrome实例演示)
  • yolo目标识别
  • php实现定时自动刷新
  • php强制下载文件在哪
  • 增值税普通发票和电子普通发票的区别
  • 营改增后还有企业所得税吗?
  • 帝国cms移动端
  • 什么是代缴代扣
  • 养老院筹开计划
  • 建账的三个基本步骤
  • 增值税发票记账联用途
  • mysql密码忘了咋办
  • 资产负债表中应收账款的计算公式
  • 无票收入不走对公账户
  • 小规模纳税人有哪些
  • 企业所得税余额为负数
  • 购买理财计入现金流量表什么科目
  • 小规模无票收入纳税申报表怎么填
  • 哪些发票可以抵扣增值税专用发票
  • 营业外支出可以抵扣进项税吗
  • 什么情况下投资乘数最大
  • 帐薄和账簿区别
  • win8链接wi-fi
  • mac os x 10.12.2 Beta1怎么升级?macOS Sierra 10.12.2 Beta升级图文教程
  • win8如何卸载360安全卫士?
  • Windows Server 2012服务器管理器的详细介绍
  • windows server 2012 r2关机在哪
  • win7系统ie浏览器打不开
  • KbdTray.exe - KbdTray是什么进程 有什么作用
  • win7系统玩英雄联盟蓝屏
  • windows8开机启动项设置
  • window10系统连接wifi
  • script在html中的用法
  • node.js中module.exports与exports用法上的区别
  • android开发环境安装步骤
  • 游戏开发吧
  • js对象类型的语法规则
  • [置顶]星陨计划
  • js用于
  • jquery设置边框
  • jquery中追加到指定元素末尾
  • 怎么查询河南省考职位报名人数
  • 畜牧业企业所得税优惠政策最新
  • 廉政谈话什么是廉政?
  • 加强宣传的名言警句
  • 按照5%的征收率减按1.5%计算应纳税额是什么意思
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设