zoukankan      html  css  js  c++  java
  • 【shell】分别提取文件名中的基本名与扩展名

    文件名是有【基本名】与【扩展名】两部分构成

    image

     

    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)##属于贪婪操作,它从左向右找出匹配通配符的最长结果。

  • 相关阅读:
    C++ 函数指针
    windows重建ESP分区修复引导
    [Python] typora文档复制到博客图片失效 SM.MS限制
    [Python] 破解一款软件验证
    requests.packages.urllib3.exceptions.ProxySchemeUnknown: Not supported proxy scheme
    nvalidSchema: Missing dependencies for SOCKS support
    html 未选择复选框不上传
    deepin linux 安装之后 引导错误 出现 grub>
    js/jquery加入的select value显示不正确问题
    请求响应状态status为canceled
  • 原文地址:https://www.cnblogs.com/OliverQin/p/10246038.html
Copyright © 2011-2022 走看看