【shell】分别提取文件名中的基本名与扩展名
文件名是有【基本名】与【扩展名】两部分构成

1.借助【%】操作符从文件名中提取基本名部分
Linux:/qinys # file_name='get_name.tar.gz'
Linux:/qinys # name=${file_name%.*}
Linux:/qinys # echo "The File name is :"$name
The File name is :get_name.tar
从输出结果我们可以看出,已经成功从文件名get_name.tar.gz中提取基本名:get_name.tar
原理说明:
(1)从file_name中删除位于%右侧的通配符(上例中的是.*)所匹配到的字符串。通配符从右往左进行匹配
(2)%属于非贪婪操作,它从右向左找出匹配通配符的最短结果。
2.借助【%%】操作符从文件名中提取基本名部分
Linux:/qinys # file_name='get_name.tar.gz'
Linux:/qinys # name=${file_name%%.*}
Linux:/qinys # echo "The File name is :"$name
The File name is :get_name
从输出结果我们可以看出,已经成功从文件名get_name.tar.gz中提取基本名:get_name
原理说明:
(1)从file_name中删除位于%%右侧的通配符(上例中的是.*)所匹配到的字符串。通配符从右往左进行匹配
(2)%%属于贪婪操作,它从右向左找出匹配通配符的最长结果。
3.借助【#】操作符从文件名中提取扩展名部分
Linux:/qinys # file_name='get_name.tar.gz'
Linux:/qinys # name=${file_name#*.}
Linux:/qinys # echo "The Extension name is :"$name
The Extension name is :tar.gz
从输出结果我们可以看出,已经成功从文件名get_name.tar.gz中提取基本名:tar.gz
原理说明:
(1)从file_name中删除位于#右侧的通配符(上例中的是*.)所匹配到的字符串。通配符从左往右进行匹配
(2)#属于非贪婪操作,它从左向右找出匹配通配符的最短结果。
4.借助【##】操作符从文件名中提取扩展名部分
Linux:/qinys # file_name='get_name.tar.gz'
Linux:/qinys # name=${file_name##*.}
Linux:/qinys # echo "The Extension name is :"$name
The Extension name is :gz
从输出结果我们可以看出,已经成功从文件名get_name.tar.gz中提取基本名:gz
原理说明:
(1)从file_name中删除位于##右侧的通配符(上例中的是*.)所匹配到的字符串。通配符从左往右进行匹配
(2)##属于贪婪操作,它从左向右找出匹配通配符的最长结果。
【shell】分别提取文件名中的基本名与扩展名的更多相关文章
- Linux shell 之 提取文件名和目录名的一些方法
很多时候在使用Linux的shell时,我们都需要对文件名或目录名进行处理,通常的操作是由路径中提取出文件名,从路径中提取出目录名,提取文件后缀名等等.例如,从路径/dir1/dir2/file.tx ...
- Linux中一些约定俗成的文件扩展名
注:Linux中的所有内容均以文件的形式保存,但不依靠扩展名区分文件类型(根据权限区分),约定俗成的文件扩展名是为了方便管理员对文件进行区分 压缩包:“*.gz”.“*.bz2”.“*.tar.bz2 ...
- C# 获得指定路径扩展名 , 去除扩展名
//指定扩展名的文件 private void button1_Click(object sender, EventArgs e) { textBox1.Text = ""; st ...
- Delphi获取文件名、文件名不带扩展名、文件名的方法;delphi 获取文件所在路径
取文件名 ExtractFileName(FileName); 取文件扩展名: ExtractFileExt(filename); 取文件名,不带扩展名: 方法一: Function Extrac ...
- Delphi获取文件名、不带扩展名文件名、文件所在路径、上级文件夹路径的方法
1.获取不带扩展名的文件名方法,利用ChangeFileExt函数修改传入参数的扩展为空,并不会对文件本身产生变更. ChangeFileExt(ExtractFileName('D:\KK\Test ...
- Shell获取文件的文件名和扩展名的例子
这篇文章主要介绍了Shell获取文件的文件名和扩展名的例子,简明版的代码实例,看了就懂,需要的朋友可以参考下 basename example.tar.gz .tar.gz # => examp ...
- python脚本工具-2 去除扩展名后提取目录下所有文件名并保存
文件夹里有多个RM格式的视频文件,现需要把它们的文件名都提取出来,并去掉文件的扩展名,以便放到需要的网页里. 源代码: # --- picknames.py --- import os filenam ...
- Delphi中文件名函数-路径、名称、子目录、驱动器、扩展名
文件名函数 文件名函数可以对文件的名称.所在子目录.驱动器和扩展名等进行操作.下表列出这些函数及其功能. 函数说明 ExpandFileName() //返回文件的全路径(含驱动器.路径) Extra ...
- 【前端】提取URL中的各个GET参数
/**************************** * 有这样一个URL:http://item.taobao.com/item.htm?a=1&b=2&c=&d=xx ...
随机推荐
- 关于CSS中的float可能出现的小问题
关于CSS中的float可能出现的小问题 前言:最近学习CSS的float所遇到点小问题,然后顺便分享给大家. 一.什么是CSS以及float (一) CSS概述 CSS是层叠样式表(英文全称:Cas ...
- 通过pycharm使用git
前言 使用git+pycharm有一段时间了,算是稍有点心得,这边整理一下,可能有的方法不是最优,欢迎交流,可能还是习惯敲命令去使用git,不过其实pycharm已经帮忙做了很多了,我们可以不用记住那 ...
- mysql权限管理命令示例
mysql权限管理命令示例 grant all privileges on *.* to *.* identified by 'hwalk1'; flush privileges; insert in ...
- BZOJ3916: [Baltic2014]friends
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3916 题解:随便hash.刚开始看错题WA了N发.(我连双hash都写了!) 代码: #inc ...
- hyper-V下虚拟机连接外网,怎么才能将Hyper-V 的虚拟机接入互联网?
现在情况是这样的: windows hyper-V主机IP: 192.168.20.3 hyper-v虚拟网卡IP:192.168.20.13 虚拟机1IP:192.168.20.21 同一局域网主机 ...
- @Param注解在Mybatis中的使用 以及传递参数的三种方式
第一种: Dao层的方法 public User selectUser(String name,String password); 对应的Mapper.xml <select id=" ...
- SharePoint 2013 基于表单 Membership 的身份验证
其实关于SharePoint 2013 表单身份验证网上已经有很多了,比如SharePoint 2013自定义Providers在基于表单的身份验证(Forms-Based-Authenticatio ...
- IIS7.5配置Gzip压缩解决方案(转)
开启配置HTTP压缩(GZip) 在IIS7中配置Gzip压缩相比IIS6来说实在容易了许多,而且默认情况下就是启用GZip压缩的.如果没有,则可以再功能视图下找到“压缩”项,进入之后就会看到“静态内 ...
- 魅族推送 简介 集成 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十八)ES6.2.2 增删改查基本操作
#文档元数据 一个文档不仅仅包含它的数据 ,也包含 元数据 —— 有关 文档的信息. 三个必须的元数据元素如下:## _index 文档在哪存放 ## _type 文档表示的对象类别 ## ...