上海园区招商办公室
联系人:梁经理
联系电话:15000456391
欢迎来电咨询,竭诚为你服务!
Linux中,操作系统一般表示文件的方式是:
文件名.扩展名。
这里介绍几个符号:
%.* 从右向左非贪婪匹配,取匹配字符串最小值后删除。(适合取文件名,因为删除的内容最少)
%%.* 从右向左贪婪匹配,取匹配字符串最大值之后删除。
#*. 从左向右非贪婪匹配,取匹配字符串最小值后删除。
##*. 从左向右贪婪匹配,取匹配字符串最大值后删除。(适合取文件扩展名,因为删除的内容最长)
在Linux系统中,可以借助%操作符,把文件名称部分从“文件名称.扩展名” 格式的文件名提取出来。
比如:
filename="server.log"
name=${filename%.*}
echo file name is $name.
提取文件的扩展名,也就是后缀名可以借助#操作符实现。举例如下:
filename="sample.jpg"
extension=${filename##*.}
echo file extension is $extension.
工作原理:
从文件名.扩展名这种格式的文件中提取名称,使用了%的操作符。
${VAR%.*}的含义是:
从变量$VAR中删除位于%右侧的通配符(.*)所匹配的字符串,通配符从右向左进行匹配。然后从$VAR中删除匹配结果,展示出输出。
%属于非贪婪操作,它从右到左找到匹配通配符的最短结果。%%的行为模式是贪婪匹配,它会匹配符合条件的最长的字符串。
${VAR#*.}的含义是:
从$VAR变量中删除位于#右侧的通配符(*.)所匹配的字符串,通配符从左到右进行匹配。
#也有一个相对应的贪婪操作符##。
##从左到右进行贪婪匹配,并且从指定的变量中删除匹配结果。
操作符#用*.从左到右执行非贪婪匹配。
操作符##用*.从左到右执行贪婪匹配。##执行的是贪婪模式,因此总是能够准确地提取出文件的扩展名,也就是后缀的文件格式。

Linux分支
鼓励的话语:人在一起,最重要的是相互理解和信任。

如若转载,请注明出处:https://www.dhuoke.com/8527.html